读《图解HTTP》笔记(2)

今天主要阅读了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字段实现对此协议打的切换。

猜你喜欢

转载自blog.csdn.net/weixin_37373020/article/details/80151939