• 【计算机网络】常见的HTTP报文头部信息


    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:浏览器接收内容的语言。语言跟字符集是有区别的,例如中文是语言,中文有多种字符集,big5gb2312gbk 等。该参数也可以设置多个,如 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 请求方法,例如 GETPOSTPUT,如果不支持,则会返回 405(Method Not Allowed)

    • Content-Encoding:与请求头的 Accept-Encoding 对应,指 Web 服务器表明使用何种压缩方法(gzipdeflate)压缩响应中的对象,例如,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


    参考资料
    【1】常见HTTP报文的头部域信息内容
    【2】HTTP 头部包含哪些信息
    【3】HTTP 报文头
    【4】HTTP 常用头部整理

  • 相关阅读:
    Java this 关键字
    [附源码]java毕业设计基于个性化的汽车购买推荐系统
    数据库知识
    docker和docker compose 部署
    网络安全内网渗透之DNS隧道实验--dnscat2直连模式
    【暑期每日一题】洛谷 P7798 [COCI2015-2016#6] PUTOVANJE
    数据结构与算法之美读书笔记6
    基于Java中的SSM框架实现菜匣子优选系统项目【项目源码+论文说明】计算机毕业设计
    Redis详解
    实测 ubuntu20.04 camera_calibration 相机内参标定
  • 原文地址:https://blog.csdn.net/be_racle/article/details/126805251