• 0
  • 0
分享
  • 常见的HTTP报文头部信息——软件测试圈
  • TIMI 2022-11-16 11:28:58 字数 2379 阅读 915 收藏 0

HTTP首部字段根据实际用途被分为以下4种类型。

1.通用首部

通用首部字段(General Header Fields)请求报文和响应报文两方都会使用的首部。

Cache-Control:用来声明服务器端缓存控制的指令。包括请求设置指令和响应请求指令。

请求控制指令如下。

  • no-cache:不使用缓存实体,要求从 Web 服务器去请求内容。

  • max-age:只接受 Age 值小于 max-age 值的内容,即没有过期的请求对象。

  • max-stale:可以接受过去的对象,但是过期时间必须小于 max-stale 值。

  • min-fresh:接受生命期大于其当前 Age 跟 min-fresh 值之和的缓存对象。

响应控制指令如下。

  • public:可以用 Cache 中内容回应任何用户。

  • private:只能用缓存内容回应先前请求该内容的具体用户。

  • no-cache:可以设置哪些内容不被缓存。

  • max-age:设置响应中包含对象的过期时间。

  • ALL: no-store 不允许缓存。

Connection:在请求头中,close 告诉 Web 服务器或者代理服务器,在完成本次请求响应后断开连接,无须等待本次连接的后续请求,keep-alive 告诉 Web 服务器或者代理服务器,在完成本次请求响应后保持连接,等待本次连接的后续请求。在响应头中,close 连接已关闭。keep-alive 保持连接,等待本次连接的后续请求,如果浏览器请求保持连接,则该头部表明希望 Web 服务器保持连接的时长(秒),例如,keep-alive:300。

2.请求首部

请求首部字段(Request Header Fields)从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。

Accept:告诉 Web 服务器自己能接收什么媒体类型,/ 表示能接收任何类型,type/* 表示接收该类型下的所有子类型,一般格式为 type/sub-type,多个类型使用 q 参数分割,q 的值代表 quality 请求质量,反映了用户对这类媒体类型的偏好程度,例如 Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c。

Accept-Charset:浏览器接收内容的字符集,通常是 utf-8。

Accept-Encoding:浏览器接收内容的编码方法,例如指定是否支持压缩,若支持压缩的话支持什么压缩方法,具体如 Accept-Encoding:gzip, deflate, sdch。

Accept-Language:浏览器接收内容的语言。语言跟字符集是有区别的,例如中文是语言,中文有多种字符集,big5、gb2312、gbk 等。该参数也可以设置多个,如 Accept-Language: zh-CN,zh;q=0.8。

Authorization:当客户端接收到来自 Web 服务器的 WWW-Authenticate 响应时,后面可以用该头部来携带自己的身份验证信息给 Web 服务器直接进行认证。

3.响应首部

响应首部字段( Response Header Fields)从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。

Accept-Ranges:Web 服务器表明自己是否接受获取某个实体的一部分(比如文件的一部分)请求,这里主要用于部分文件传输,实际上我们用的比较少。bytes 表示接受传输多大长度内容,none 表示不接受。

Age:一般当服务器用自己缓存的实体去响应请求时,可以用该头部表明实体从产生到现在经过了多长时间,如 Age: 3600。

Etag:对象(比如 URL)的标志值。一个对象(如 HTML 文件)如果被修改了,其 Etag 也会被修改,所以 Etag 的作用和 Last-Modified 差不多,主要供 Web 服务器判断一个对象是否改变。例如前一次请求某个 HTML 文件时获得了其 Etag,当这次又请求该文件时,浏览器就会把先前获得的 Etag 值发送给 Web 服务器,然后 Web 服务器会将这个 Etag 值跟该文件当前的 Etag 值进行对比,判断文件是否改变。

4.实体首部

实体首部字段(Entity Header Fields)针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

Allow:该参数头部可以设置服务端支持接收哪些可用的 HTTP 请求方法,例如 GET、POST、PUT,如果不支持,则会返回 405(Method Not Allowed)。

Content-Encoding:与请求头的 Accept-Encoding 对应,指 Web 服务器表明使用何种压缩方法(gzip,deflate)压缩响应中的对象,例如,Content-Encoding:gzip。

Content-Language:与请求头中的 Accept-Language 对应,Web 服务器告诉浏览器响应的媒体对象语言。

Content-Length:Web 服务器告诉浏览器 HTTP 请求内容的长度。例如,Content-Length: 1024。

Content-Range:Web 服务器表明该响应包含的部分对象为整个对象的哪个部分。

Content-Type:与请求头的 Accept 对应,指明 Web 服务器告诉浏览器响应的对象的类型。例如,Content-Type:application/xml。


作者:皮皮要HAPPY

原文链接:https://blog.csdn.net/be_racle/article/details/126805251

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   其实大部分类型的测试都需要去准备测试数据。  ·手工测试:一些基础数据,比如配置数据等等是需要去准备的;  · 自动化测试:基础需要准备,现有数据,动态运行时产生的数据是需要准备的;  · 性能测试:跟自动化测试差不多。  这里就牵扯到了一些关于数据的概念了。  测试数据的分类  我们可以给测试数据分一些种类:  · 基础数据,比如一些内容管理系统会配置站点的标题,友情链接之类的基础配置数据;  · 存量数据,也就是现有数据。比如在测试一些电商站点的时候会提前插入一些商品信息,类目信息物流信息等;  · 动态数据,也可以叫做session数...
            0 0 975
            分享
          •   前言  我在做51Testing讲堂以及和参加讲堂的同学们在微信群里互动的时候,有个同学提出最好能在安全工具当中集成扫描功能,这个建议勾起了我的兴趣,下面大家将会看到的扫描器,就这么出炉了。  扫描器的设计思想是:灵活、易扩展、易修改。  灵活的意思就是可单独执行专项漏洞的扫描,也可以批量执行集成的所有漏洞探测模块;易扩展的意思就是,新的漏洞检测模块可清晰简单的集成进扫描器;易修改,对各个漏洞扫描模块可根据特殊情况修改探测逻辑。  不管是安全,或者是渗透测试,我们的假想敌都是不法的黑客分子,就个人能力的角度来看,对漏洞的理解及漏洞利用场景的熟悉程度,决定了我们匹配哪一级别的骇客。  当然,...
            11 11 2488
            分享
          • 数据边界性测试数字类型超出应用设定最大值数字类型超出类型最大值数据类型填写非数据类型时间类型超出引用设定限制时间类型填写其他类型数据文本类型超出应用设定长度数据不符合实际规则(例如输入不存在的日期,或货币内容可以输入小数点后多于2位以上等)是否对输入内容的大小写进行自动转换,以防止用户对于大小写敏感内容出现输入错误是否对输入内容的前后空格进行自动去除,以防止用户输入不该存在的前后空格校验性测试填写不符合校验的数据,例如不能以数字开头的输入,输入数字开头的数据验证码,填写错误的验证码需重复一致填写时,填写不一致数据对于文本框输入类型内容有要求是否进行了键盘输入检测上传不符合类型的文件代码级测试非...
            10 10 808
            分享
          • postman是测试接口经常使用的工具,它是一个很强大的工具。那么在测试中若是存在接口依赖的现象改怎么测试呢?下面就介绍下postman上一个接口返回的数据作为下一个接口的参数,以百度接口为例:1.创建一个请求接口,并在tests中添加下面两段代码并点击send//获取响应报文中的json var jsonData = JSON.parse(responseBody); //设置全局表量 pm.globals.set("access_token", jsonData.access_token);2.点击postman类似眼睛的按钮,可...
            0 0 3759
            分享
          •   “工欲善其事必先利其器”,通过前边几篇文章的介绍,大家大致对接口有了进一步的认识。那么接下来让我们看看接口测试的工具有哪些。目前,市场上有很多支持接口测试的工具。利用工具进行接口测试,能够提供测试效率。例如,让你一天完成100个接口测试任务,你觉得你加班能完成,那么1000个、10000个......  如果有工具,可以大大提高你的效率,可以达到事半功倍,但是不是所有工具都能够支持你完成这个任务。下面我们就来挑选几个常用和常见的工具,简单介绍一下。如果需要或者有兴趣可以在网上查看各种工具对应的资料进行深入人的学习,这里带领大家了解一下,碰到这些工具会用、了解、知道这些工具就达到目的了,不要...
            14 15 2330
            分享
      • 51testing软件测试圈微信