今天主要阅读了6-9章的内容。
个人认为第六章对于练习爬虫是极为有用的,虽然以前大致了解一些请求头字段的作用,可是头一次全面地了解了这么多。
1,首部字段有四种:
通用首部字段(请求方与响应方均可能用到)
请求首部字段(仅请求方可能用到)
响应首部字段(仅响应方可能用到)
实体首部字段(记录实体部分的一些信息)
2,主要的一些请求头及含义:
一、通用首部字段
cache-control:对缓存进行控制,public可以让缓存被多个用户使用,相反,private仅允许特定用户使用,
区别no-cache是不利用过期缓存资源,no-store才是不对此资源进行缓存。max-age是最大有效期,min-fresh是返回没超过指定期限的缓存,only-if-cached表示只返回缓存过的资源,must-revalidate是字面意思,必须向服务器校验后才返回,proxy-revaildate同理,no-transfom参数阻止资源被压缩。
connection:这个字段有两个不同语境,如果参数是字段名xxx那么下次转发(可能是代理之类的转发点)会删除这个字段,
如果是close或keep-alive就会不持续连接或者保持连接。
date:创建报文的时间。
progma:no-cache,表示不接受缓存,要求直接从服务器获取。
transfer-encoding:规定传输编码方式。比如:chunked,分块传输。
upgrade:后面接的参数是协议/版本号参数。要去通信使用参数中的协议及其版本。
via:伴随TEANCE方法一起使用,记录经过的跳转点。
warning:警告一般与缓存,验证信息,编码有关。
二、请求首部字段
accept:一般是type/subtype,q=(0,1);的格式,接受的类型依据q从大到小顺序。
accept-charset:同上,不过针对字符集参数。
accept-encoding:有gzip,compress,deflate,identity四种。
accept-language:接受的自然语言。
authorization:携带认证信息。
expect:一般是state code-message格式,期望出现某种行为。
from:报文实际上从哪里来。
host:请求主机。
if-match/if-none-match:针对资源的ETag标签进行匹配,如果符合/不符合就返回资源。
if-modified-since:参数时间前的资源可以返回,否则需要重新访问服务器。
if-range:-->ifmatch与range混合使用。
max-forwards:最大转发次数,在参数变为0时返回信息。
referer:从哪个页面发出的请求。
TE:传输编码。
user-agent:创建请求的浏览器和用户代理信息。
三、响应首部字段
accept-range:是否接受范围字节的请求块。bytes:允许,none,不允许。
age:此响应已经存在的时间。
etag:强etag标签在资源内容发生变化后一定也会变化,弱etag则不会变化。
location:一般伴随重定向响应,告知新的url。
retry-after:伴随503状态码,告知一段时间后再访问。
server:服务器信息。
vary:后面跟着字段名称,更新时只更新对应的字段。
四、实体首部字段
allow:允许的方法。
content-encoding:实体部分的编码方式。
content-language:实体的自然语言。
content-length:实体大小。
content-location:实体对应的url。
content-MD5:实体执行md5算法后的字符串。但是并不能保证信息的正确,因为完全可以修改内容然后同时修改此字段达到欺骗目的。
content-range:对应range请求。
content-type:对应accept-type字段。
expire:过期时间,过期前可以以缓存响应,否则就要重新请求服务器。
五、与cookie有关。
set-cookie:带有name-value参数,expire参数,path参数,domain参数,secure参数,httponly参数,然后就可以保存cookie并且在使用时加入。
cookie:带有cookie值。
3,有关http安全。
一、现在的http依靠SSL(安全套接层)可以变为https,或者与TLS(安全传输层协议)组合使用。
二、共享密匙加密:双方拥有一样的密匙,在发送方加密,在接收方解密。但是如何安全的传输这个公共密匙就成了难题。
三、使用两把密匙加密:也成为非对称加密。发送方用公匙加密,接收方用私匙解密。
四、HTTPS使用两种方法混合的机制加密。先用非对称加密法传过去公匙,然后使用对称加密。
五、证书由第三方安全机构颁发,也可以确认服务器背后的运营商是否存在。
4,认证方式。
一、BASIC认证:最基本的用户名:口令模式,很容易被监听,安全性不高。
二、DIGEST认证:也叫摘要认证,增加质询码/响应码增加安全性,但仍然可以被伪装用户监听到。
三、SSL认证:依靠服务器颁发的证书验证,而且基于表单双因素验证。
5,基于HTTP的其他协议
一、SPDY协议:使用SSL,并且多路复用流,给请求优先级,压缩首部,推送,提示功能。多路复用流的本质是对同一个域名的多个访问同时发出(并发)。
二、WebSocket协议:全双工通信,支持推送。可以使用update字段实现对此协议打的切换。