《图解HTTP》学习记录六(报文首部字段②)

响应首部字段

响应首部字段是由服务器向客户端返回响应报文中所使用的字段,用以补充响应的附加信息,服务器信息,以及对客户端的附加要求等。

1.Accept-Ranges
例:Accept-Ranges:bytes
用于告知客户端能否从服务器获取部分资源。其值有两个:bytes/none,前者表示可以,反之为后者。

2.Age
例:Age:600(单位为s)
告知客户端,源服务器在多久前创建了响应,若创建该响应的为缓存服务器,则Age指的是缓存后的响应再次发起认证到源服务器认证完成的时间间隔。

3.Etag
例:Etag:sd332d2sdf53dsfs
用于告知客户端实体标志,给资源制定一串唯一的,无固定算法的字符串。资源被缓存时,就会被分配唯一性标志。例如:http://www.google.com ,用中文浏览器进入和英文浏览器分别返回中文版和英文版的主页,虽然它们的URI是一致的,但是实际上它是根据Etag来指定资源的。

4.Location
当页面被重定向后,使用首部字段Location可以将响应接收方引导至某个与请求URI位置不同的资源。该字段会配合3XX,提供重定向的URI;

5.Retry-After
例:Retry-After:600(单位为s)
告知客户端应该在多久之后再次发送请求,主要配合503一起使用。

5.Server
提供服务器应用程序的信息,与请求响应的User-Agent相对应。

6.WWW-Authenticate
用于HTTP访问认证,它会告知客户端访问请求URI所指定资源的认证方案(Basic or Digest),如果状态码为401,则响应报文中一定有该字段。

实体首部字段

实体首部字段是包含在请求报文和响应报文中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息。
1.Allow
Allow用于通知客户端能够支持Request-URI指定资源的所有HTTP方法。当服务器收到不支持的HTTP方法时,会以状态码405作为响应返回。

2.```Content-Encoding/Content-Language/Content-Length/Content-Type``
分别表明了实体主体的内容编码方式(gzip,compress,deflate,identity)、实体内容所使用的语言、实体内容的资源大小以及实体主体对象的媒体类型。

3.Content-Location
它将给出与报文主体相对应的URI,与Location不同的是,它返回的是豹纹主题返回资源的URI。

4.Content-MD5
它是一串由MD5算法生成的值,其目的在于检查主体在传输过程中是否保持完整,以及确认传输到达。

5.Expires
它将会将资源失效的日期告诉客户端,在Expires字段指定的时间之前,会将缓存作为内容进行返回,反之,则会转向源服务器请求资源。前面我们说过,他的优先级是低于max-age的。

6.Last Modified
指明资源最终被修改的时间。

Cookie

HTTP是无状态协议,不对过去的请求/响应进行保留,这将极大的减少服务器CPU及其内存的消耗,正式因为HTTP的简单使得其广泛应用于各种场合。
但是,每刷新一次网页就要进行重复性操作将给用户带来极大的不便利性,所以机智的技术人员发明了Cookie来保存状态使之在不重新认证的情况下访问相对应的资源。值得注意的是,Cookie并不是HTTP标准,现在人们约定俗称的标准是在网景公司制定标准之上的拓展。
具体到报文的首部字段:

  • Set-Cookie:出现在响应报文首部
《图解HTTP》学习记录六(报文首部字段②)_第1张图片
  • Cookie:出现在请求报文首部,其内容为Cookie的值。

chrome中的报文解释

如图所示,用chrome观察的一次完整HTTP通信

《图解HTTP》学习记录六(报文首部字段②)_第2张图片
  • General:起始行,描述请求报文的基本信息
    Request URL:表示请求资源的URL地址;
    Request Method:表示发送请求报文的方式,为PUT方法;
    Status Code:表示此时请求报文的状态码,为一切正常,成功连接;
    Remote Address:表示请求服务器的主机地址和端口号;
  • Response Headers:响应报文
    Connection:表示当前服务器和客户端的连接状态,为保持连接;
    Content-Length:表示回应报文字符的长度,=12;
    Content-Type:表示响应信息发送的方式;
    Date:表示生成响应报文的时间;
    Server:表示服务器应用程序及其版本号,使用的是nginx的1.6.2版本;
    X-Powered-By:表示访问网站的应用程序是用Express开发的;
  • Request Headers:请求报文的头部信息,用来描述请求报文的属性块;
    Accept:告诉服务器客户端接收哪些类型的响应,此处为所有;
    Accept-Encoding:客户端接收哪种编码方式,为gzip,deflate,sdch;
    Accept-Language:客户端接收什么语言,为中文简体;
    Connection:表示当前服务器和客户端的连接状态,为保持连接,这个属性是通用头部;
    Content-Length:表示请求报文字符的长度,=56;
    Content-Type:表示请求信息发送的方式,为POST方法;
    Cookie:缓存资源;
    Host:表示请求服务器的主机地址和端口号,此处地址为note.ruoyu.site;
    Origin:表示请求服务器的源地址;
    Referer:告诉服务器发送请求的来源;
    User-Agent:指客户端发送请求的应用程序及其版本号;
    X-Requsted-With:表示发送请求报文的应用程序是以XMLHTTPRequest的形式发送的数据。
  • Form Data:上传的文件信息
    article:表示是若愚@饥人谷相关信息

你可能感兴趣的:(《图解HTTP》学习记录六(报文首部字段②))