与Linda一起100天写作

D25-《图解HTTP》读书笔记4

2017-05-02  本文已影响6人  小红鱼

第6章HTTP首部

9、Accept:客户端通知服务器,用户代理能够处理的媒体类型及相对优先级。媒体类型用type/subtype指定。优先级用q表示,范围为0~1,1为最大值和默认值。例如application/xml;q=0.9

10、Authorization:告知服务器用户代理的认证信息;

11、Expect:客户端告知服务器期望出现的某种特定行为,目前HTTP/1.1只定义了Expect: 100-continue。如果服务器无法做出期望的行为,会返回417 Expectation Failed;

12、From:告知服务器使用用户代理的用户的电子邮件地址;

14、条件请求:形如If-xxx这种形式的请求首部字段。服务器只在条件判断为真时才会执行请求。

1)If-Match:实体标记ETag是与特定资源关联的确定值,资源更新后ETag也会更新。If-Match用于请求特定的ETag值的资源,服务器比对If-Match字段值和资源的ETag,仅当两者一致才执行请求,不一致则返回412 Precondition Failed。如果If-Match的值为*,则只要资源存在就返回;

2)If-Modified-Since:如果在该字段指定的日期后,资源发生了更新,服务器会接受请求,否则返回304 Not Modified的响应;

3)If-None-Match:当If-None-Match与ETag值不一致时,可处理该请求;

4)If-Range:告知服务器若指定的If-Range字段值和请求资源的ETag值或时间一致,则作为范围请求处理,带上Range字段。反之,则返回全体资源;

5)If-Unmodified-Since:告知服务器,指定的请求资源只有在字段值指定的日期之后未发生改变的情况下,才能处理请求。否则,以状态码412 Precondition Failed作为响应返回;

15、Proxy-Authorization:与Authorization类似,不同之处在于,认证行为发生在客户端与代理之间;

16、TE:告知服务器客户端能够处理的传输编码方式及优先级。Accept-Encoding用于内容编码;

17、Referer:告知服务器请求是从哪个web页面发起的;

18、Accept-Ranges:服务器告知客户端是否能处理范围请求,可处理时指定为bytes,反之指定为none;

19、Age:当缓存服务器用自己缓存去响应请求时,用该首部表明源响应从产生到现在经过多长时间;

20、ETag:服务器为每份资源分配对应的ETag值,ETag有强弱之分。强ETag,不论实体发生多么细微的变化都会改变其值。弱Etag,只有资源发生了根本改变,产生差异时才会改变ETag,弱ETag在字段值最开始处附加W/;

21、Proxy-Authenticate:代理服务器把所要求的认证信息发送给客户端;WWW-Authenticate用于源服务器的HTTP认证;

22、Retry-After:告知客户端在多久之后再次发送请求,主要配合状态码503 Service Unavailable使用。字段值可以为具体的日期时间或创建响应后的秒数;

23、Server:告知客户端当前服务器上安装的HTTP应用程序的信息;

24、Vary:告知缓存服务器,如何判断请求是否一样,Vary中的组合就是判断的依据。比如Vary中有User-Agent,那么即使相同的请求,如果用户使用IE打开了一个页面,再用Firefox打开这个页面的时候,缓存服务器会认为是不同的页面。如果Vary中没有User-Agent,那么缓存服务器会认为是相同的页面,直接给用户返回缓存的页面,而不会再去源服务器请求相应的页面;

25、Allow:服务器接收到不支持的HTTP方法时,会以状态码405 Method Not Allowd作为响应返回,同时还会把所有能支持的方法写入Allow首部字段后返回;

26、Content-MD5:用于检查报文主体在传输过程中是否保持完整。对报文主体执行MD5算法获得128位二进制数,再通过Base64编码后将结果写入Content-MD5字段值。接收端会对报文主体再执行一次相同的MD5算法;

26、Expires:代表资源失效的日期。如果有缓存服务器,在Expires指定的时间之前,回以缓存的副本响应;Cache-Control的max-age>Expires;

27、Cookie没有被编入标准化的HTTP/1.1中:

1)Set-Cookie:响应首部字段,开始状态管理所使用的Cookie信息;

2)Cookie: 请求首部字段,当客户端想获得HTTP状态管理支持时,就会在请求中包含从服务器接收到的Cookie信息;

28、Set-Cookie字段的属性:

1)NAME=VALUE:必须项,赋予cookie的名称和值;

2)expires=DATE:cookie的有效期,默认为浏览器关闭时截止;一旦cookie从服务器端发送至客户端,服务器端就不存在可以显示删除cookie的方法,但可以通过覆盖已过期的cookie,实现对客户端cookie的实质性删除操作;

3)path=PATH:将服务器上的文件目录作为cookie的适用对象,不指定则默认为资源的所在文件目录;

4)domain=域名:作为cookie适用对象的域名,不指定则为创建cookie的服务器的域名;

5)Secure:仅在HTTPS安全通信时才会发送cookie;

6)HTTPOnly:使cookie不能被js脚本访问(使用document.cookie无法读取附加HTTPOnly属性后的cookie内容;

29、X-Frame-Options:属于HTTP响应首部,用于控制网站内容在其它web网站的Frame标签内的显示问题,主要目的是为了防止点击劫持攻击(clickjacking)。有两个字段值:

1)DENY:拒绝;

2)SAMEORIGIN:仅同源域名下的页面;

X-前缀的首部字段属于非标准的首部;

30、X-XSS-Protection:HTTP响应首部,用于控制浏览器XSS防护机制的开关:

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

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

31、DNT:HTTP请求首部,Do Not Track的简称,意思为拒绝个人信息被收集,拒绝被精准广告追踪:

1)0:同意被追踪;

2)1:拒绝被追踪;

上一篇下一篇

猜你喜欢

热点阅读