zoukankan      html  css  js  c++  java
  • 《图解HTTP》HTTP首部(2)

    四、请求首部字段

      请求首部字段是由客户端往服务器端发送请求报文汇总使用的字段,用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容

    1、Accept

      Accept用于通知服务器,用户代理能够处理的媒体类型和媒体类型的优先级

      可以使用type/subtype这种形式,一次指定多种媒体类型

        

      下面是几种常见的媒体类型

    • 文本文件

        text/html,text/plain,text/css...

        application/xhtml+xml,application/xml...

    • 图片文件

        image/jpeg, image/gif, image/png

    • 视频文件

        video/mpeg, video/quicktime

    • 应用程序使用的二进制文件

        application/octet-stream,application/zip...

      给媒体类型增加优先级

        可以使用q=来额外表示权重值,用分号(;)进行分隔。

        权重q的范围是0~1,且1是最大值。不指定权重q值时,默认权重q=1.0

        当服务器可以提供多种内容时,会首先返回权重值最高的媒体类型

    2、Accept-Charset

      通知服务器,用户代理支持的字符集和字符集的优先顺序,应用于内容协商机制的服务器驱动协商

      

     3、Accept-Encoding

      通知服务器,代理的内容编码以及内容编码的优先顺序。另外也使用*作为通用符,指定任意的编码格式

        

      几种内容编码的例子:

    • gzip
    • cpmpress
    • deflate
    • identity

    4、Accept-Language

      通知服务器和代理能够处理的自然语言(中文或英文) 以及自然语言的优先级

      

     5、Authorization

      通知服务器和代理的认证信息,通常会先返回401响应,然后客户端在输入认证信息,浏览器将首部字段Authorization字段加入报文重新发给服务器。

      

    6、Expect

      告诉服务器期望出现的某种特定的行为如果服务器无法理解客户端的期望,会返回状态码417 Expectation Failed。HTTP/1.1规定只定义了100-continue。(客户端可以利用Expect写明所期望的扩展)

      

     7、From

      告诉服务器使用用户代理的用户的电子邮件地址

      目的:显示代理用户的电子邮件联系方式。

      使用代理时,应尽可能包含From首部字段(因代理不同,电子邮箱地址可能记录在User-Agent首部字段)

      

     8、Host

      虚拟主机运行在同一个ip上,因此用Host区分

      Host字段是唯一一个HTTP/1.1规定必须被包含在请求头内的首部字段

      首部字段会告诉服务器请求的资源所处的互联网主机名和端口号(当服务器未设置主机名时,直接发送一个空值)

      

    9、If-match

      条件请求:使用首部  If-xxx  发出的请求。

      当服务器接收条件请求时,只有条件为真才会执行请求。

      只有If-matche的字段和Etag的值一致时,服务器才接受,否则412 Precondition Failed

      

      

    10、If-Modified-Since  

      在If-modify-Since字段指定的时间之后资源更新,服务器会接受请求,否则返回304 Not Modified

       

     11、If-None-Match

      If-None-Match字段和Etag值不一样时,可处理该请求

      

     12、If-Range

      指定的If-Range字段值和请求资源一致时,会请求处理,反之返回全体资源。

      若不适用If-Range字段,服务器会返回304,然后客户端再发请求,服务器才会返回全体资源。

      

    13、 If-Unmodified-Since

       在If-Unmodify-Since字段指定的时间之内资源更新,服务器会接受请求,否则返回412 Precondition Failed

    14、Max-Forwards

      经过的服务器最大数目。,每经过一个服务器减1,当Max-Forward减到0时,请求不在转发,直接返回响应。

      作用:可以了解以返回的那台服务器为终点,所经过的服务器通信情况。避免由于服务器转发失败导致客户端没有响应。

      

    15、Proxy-Authorization

      发生在客户端与代理服务器之间的认证质询,与Authorzation认证字段相似(客户端与服务器之间的认证质询)。

    16、Range

       获取部分资源的范围请求。若可以处理,返回206 PratialContent,若不能处理,返回200及全部资源。

    17、Referfer 

       告知服务器请求的原始资源的URL

      

     18、TE

      告知服务器客户端能够处理响应的传输编码方式以及相应优先级,与Accept-Ecoding功能类似,但是只用于传输编码。

     19、User-Agent

      会将创建请求的浏览器和用户代理名称等信息传达给服务器

    五、响应首部字段

    1、Accept-Ranges

      告诉客户端是否能处理范围请求,获取服务器某部分的资源。可以处理返回byte,不能处理返回none

    2、Age

      告诉客户端,服务器在多久前创建了响应

      

    3、Etage

      告知客户端实体标识

      强Etage:无论实体发生多么细微的变化都会改变其值

      弱Etage:提示资源是否相同,只有资源发生根本改变,才会改变其值。在最开始附加W/

      

     4、Location

      将响应接收方引导至某个请求URI位置不同的资源

      浏览器接收这个字段后会强制性地尝试访问重定向资源

       

     5、Proxy-Authenticate

      把代理服务器所要求的的认证信息发送给客户端

    6、Retry-After

      告诉客户端多久后再次发请求

    7、Server

      告知客户端当前服务器上安装的HTTP服务器应用层程序的信息。可能包括软件应用名称、版本号和安装时启动的可选项。

     8、Vary  

      Vary可对缓存进行控制,用于源服务器向代理服务器传达关于本地缓存使用方法的命令。

      当代理服务器收到Vary首部字段指定获取资源的请求时,若Accept-Langusge请求值相同时,直接从缓存读取响应,否则先从源服务端获取资源后才能作为响应返回。

    9、WWW-Authenticate

      用于HTTP访问认证

    六、实体首部字段

    1、Allow

      通知客户端,它能够支持的HTTP方法。若服务器不支持HTTP,则返回405 Method Not Allowed并把所支持的方法写入Allow

    2、Content-Enconding

      告知客户端对实体部分内容编码方式

    3、Content-Language

      告诉客户端主体使用的自然语言

    4、Content-Length

      表明实体主体部分的大小

    5、Content-Location

      报文主体返回资源对应的URI

    6、Content-MD5

      是一串由MD5算法生成的值,用于检查主体在传输过程中是否保存完整,以及确认传输到达。

    7、Content-Range

      告知客户端作为响应返回的实体的哪个部分范围请求。字段值以字节为单位,表示当前发送部分及整个实体大小

    8、Content-Type

      实体主体内对象的媒体类型

    9、Epires

      将资源失效的日期告知客户端。缓存服务器在接收到含有Expires的响应后,会以缓存响应请求。

      

    10、Last-Modified

      资源最后被修改的时间

    七、为Cookie服务的首部字段  

      Cookies的工作机制是用户识别及状态管理

      将cookies临时写入计算机,调用cookies时验证,有效期、域、路径、协议等内容

      

     1、Set-Cookie

      

      expires属性:浏览器可发送cookies的有效期。当expries省略,应用程序关闭cookies失效。cookies不能删除,只能覆盖

      path属性:指定cookies发送范围的文件目录

      domain属性:通过cookies指定域名。不指定domain属性更安全。

      secure属性:限制Web页面仅在HTTPS安全连接时,才可以发送cookies。

              Set-Cookie:name=vale;secure

      HttpOnly属性:使js脚本无法获取cookies,防止XSS对cookies的信息窃取

              Set-Cookie:name=value;HttpOnly 

    2、Cookie

      cookie:status=enable

      请求中包含从服务器收到的cookie,可以是多个

    八、其他首部字段

    1、X-Frame-Options

      控制网站内容在其他web网站的frame标签的显示问题

      X-Frame-Options:DENY   (拒绝)

      X-Frame-Options:SAMEORIGN   (允许源域名下的页面匹配)

       

    2、X-XSS-Protection

      是针对跨站脚本攻击的一种对策,控制浏览器XSS防护机制的开关

      0:将XSS过滤设置成无效状态

      1:将XSS过滤设置成有效状态

    3、DNT

      拒绝个人信息被收集,拒绝被精准广告追踪

      0:统一被追踪

      1:拒绝被追踪

    4、P3P

      目的:保护用户隐私

      

      

      

  • 相关阅读:
    Maven学习
    Android屏幕适配
    Java多线程中的死锁问题[转]
    数据结构基本概念和算法分析
    AsyncTask(异步任务)
    Android自定义滑动开关按钮
    记录一些我记不住的技术
    2017携程Web前端实习生招聘笔试题总结
    JavaScript ES5面向对象实现一个todolist
    原生JavaScript实现一个简单的todo-list
  • 原文地址:https://www.cnblogs.com/zhuxr/p/14163152.html
Copyright © 2011-2022 走看看