美文网首页与Linda一起100天写作
D24-《图解HTTP》读书笔记3

D24-《图解HTTP》读书笔记3

作者: 小红鱼 | 来源:发表于2017-04-27 19:38 被阅读4次

    第6章HTTP首部

    1、HTTP首部字段分为以下4种类型:

    1)通用首部字段:请求报文和响应报文两方都会使用的首部;

    2)请求首部字段

    3)响应首部字段

    4)实体首部字段:请求报文和响应报文的实体部分使用的首部;

    2、Cache-Control:通用首部字段,能操作缓存的工作机制;

    1)public:可向任意方提供响应的缓存;

    2)private:仅向特定用户返回响应;

    3)no-cache:客户端发送的请求如果包含no-cache,则表示客户端不接收缓存过的响应,缓存服务器必须把请求转发给源服务器;服务器端返回的响应如果包含no-cache,缓存服务器可以缓存,但在使用前会向源服务器进行有效期确认;

    4)no-store:请求或响应中包含机密信息,不能进行缓存;

    5)max-age:当客户端发送的请求包含max-age,如果资源的缓存时间比指定时间的数值小,那么客户端就接收缓存的资源。当指定的max-age为0,那么缓存服务器需要将请求转发给源服务器;当服务器返回的响应中包含max-age时,代表资源保存为缓存的最长时间,在未过期前,缓存服务器将不对资源的有效性再作确认;

    6)min-fresh:要求缓存服务器返回至少还未过指定时间的缓存资源;

    7)max-stale:如果指令未指定参数值,那么无论经过多久,客户端都会接收响应;如果指定了参数值,那么即使过期,只要仍处于max-stale指定的时间内,仍旧会被客户端接收;

    8)only-if-cached:表示客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回;若发生请求缓存服务器的本地缓存舞响应,则返回状态码504 Gateway Timeout;

    9)must-revalidate:表示缓存服务器会向源服务器再次验证即将返回的响应目前是否仍然有效。若缓存服务器无法连通源服务器,缓存服务器返回给客户端一条504 Gateway Timeout;

    10)proxy-revalidate:类似于must-revalidate,但不适用于代理缓存;

    11)no-transform:无论是在请求还是响应中,缓存都不能改变实体主体的媒体类型,防止缓存或代理压缩图片等操作;

    3、Connection:

    1)在客户端发送请求和服务器返回响应内,使用Connection字段,可控制代理不再转发的首部字段;

    2)HTTP/1.1版本的默认连接都是持久连接,当服务器端想明确断开连接时,则指定Connection字段值为close;如果想在旧版本的HTTP协议上维持持久连接,则需要指定Connection的值为Keep-Alive,服务器端则返回Keep-Alive及Connection字段;

    4、Date:创建HTTP报文的日期和时间;

    5、Pragma:仅作为HTTP/1.0向后兼容,只用在客户端发送的请求中,要求所有的中间服务器不返回缓存的资源;

    6、Trailer:应用在分块传输编码时,说明在报文主体后记录了哪些首部字段。例如Trailer: Expires,说明在报文主体之后会出现首部字段Expires;

    7、Transfer-Encoding:规定传输报文主体时采用的编码方式,HTTP/1.1的传输编码方式仅对分块传输编码(chunked)有效;

    8、Upgrade:用于检测HTTP协议及其他协议(例如TLS/1.0)是否可使用更高的版本进行通信。Upgrade的协议仅限于客户端和邻接服务器之间,因此使用Upgrade,还需要额外使用Connection: Upgrade(使用Connection字段,可控制代理不再转发的Upgrade字段)。服务器可使用101 Switching Protocols状态码作为响应返回;

    相关文章

      网友评论

        本文标题:D24-《图解HTTP》读书笔记3

        本文链接:https://www.haomeiwen.com/subject/jkynzttx.html