HTTP协议学习

上传人:碎****木 文档编号:220862055 上传时间:2021-12-09 格式:DOCX 页数:5 大小:83.13KB
返回 下载 相关 举报
HTTP协议学习_第1页
第1页 / 共5页
HTTP协议学习_第2页
第2页 / 共5页
HTTP协议学习_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《HTTP协议学习》由会员分享,可在线阅读,更多相关《HTTP协议学习(5页珍藏版)》请在金锄头文库上搜索。

1、 协议学习什么是协议协议是多人通过协商,最终达成全都的合约。什么是 协议 协议是客户端与效劳器之间通信时所共同遵循一个合约。 协议的主要内容是什么 协议是双方的:它定义了客户端如何恳求效劳器资源,效劳器如何响应客户端恳求。客户端如何恳求资源?1GET /index.html /1.1 2Host: baidu 3#GET:恳求资源的方法4#/index.html:资源位置5# /1.1:恳求资源的协议/版本6#Host:资源所在的效劳器效劳器如何响应恳求?1 /1.1 200 OK2Content-type:text/html 34Hello,World!5# /1.1:响应资源的协议/版本6

2、#200:状态码,表示资源状态7#OK:状态描述值8#Content-type:文本格式9#CRLF换行符+回车符10#Hello,World!:响应主体 协议与 TCP/IP 协议之间的关系 协议是构建在TCP/IP 协议之上的,一次完整的 通信会翻开一次TCP 连接。所以深化理解 协议,必需对TCP/IP 协议有肯定的了解。 代理在现实的网络世界中,代理无处不在,对于客户端来说,代理就是效劳端,对于最终的效劳端来说,代理又是客户端。代理的身份可以是双重的,所以在很多方面,代理作用很大:做为缓存效劳器,直接与客户端通信,缓解真实效劳端压力1.做为代理效劳器,可以让一些访问不了外网的客户端也能

3、访问到外网的资源2.做为认证效劳器,可以拦截客户恳求,只有通过认证的客户端才能访问到最终的资源3. 缓存策略对于一些效劳器资源,效劳端并不期望客户端在重复恳求时,每次都返回资源。这样当资源文件足够大、恳求足够多时,效劳器的压力会很大。 协议在缓存这一块有一个比较合理的交互规章:客户端恳求资源默认是允许缓存,假设 header 中带 Cache-Control:no-cache ,那么说1.明客户端不缓存数据效劳端响应资源,header 中添加 Cache-Control:max-age=1000, 告知客户端 1000s 内我2.不会转变资源内容,你就用旧的资源吧客户端的将资源放入到缓存文件夹

4、3.客户端再次恳求资源,先去缓存文件夹中查找,找到资源后,比照时间,看是否超过了 1000s,4.假设没有超过就会连续使用资源,假设超过了就会向效劳器询问资源是否已经更新,在 header 中添加 if-modified-since:效劳端从前响应 header 中的 Date 值或 if-none-match:效劳端从前响应 header 中的 ETag效劳端接收到客户端恳求,觉察恳求 header 中有条件恳求 if-modified-since 或5.if-none-match,会检查效劳器资源是否修改正,假设没有修改,效劳端返回 304,告知客户端缓存资源可用。假设觉察资源已经修改,那

5、么就将修改正的资源发送给客户端 常用恳求头详解客户端通过恳求头,告知效劳器要恳求的资源,同时还会附带一些其他的信息,那么这些请求信息想表达什么意思呢?上图可以看到, chrome 扫瞄器就是一个客户端,在恳求oschina 主页资源时, 恳求中所包含的恳求头信息:1.Accept :告知效劳器,客户端可以承受的资源类型,可以是一个类型,也可以是多个类型,多个类型间用逗号分隔开特别的 */* 表示什么类型都可以;q 表示期望返回资源的级别,没有的话默认是1,显示写的话通常在类型后用分号分开,往往是一个键值对的形式,如一个 Content-type的响应头信息。q=0.8 。通常效劳器会响应2.A

6、ccept-Encoding: 告知效劳器,客户端支持什么样的压缩算法,可以为一个值或多个值, 用逗号分开,常用的压缩算法有 gzip 。效劳器在收到这个字段后,会检查效劳器是否支持这个算法,假设支持,就会在发回响应信息前,对资源进展压缩,这样可以减小响应资源的大小。通常效劳器会响应一个 Content-Encoding:gzip 的响应头信息。3.Accept-Language: 告知效劳器,客户端期望效劳器返回的语言格式,对于支持国际话的效劳端来说,这个字段很重要,可以通过这个字段,返回不同语言的资源4.Cache-Control :这个值告知效劳器客户端期望的缓存策略,假设消灭在客户端的

7、恳求头中,值往往是max-age=0, 告知效劳器,客户端是不缓存效劳器资源的5.Connection :客户端发送的值往往是keep-alive ,这个值告知效劳器自己翻开的是一个长 tcp 连接,效劳器承受到这个值后,假设承受这个长连接,就会返回Connection :keep-alive ,这样当客户端再有恳求发送时,就会重用这个tcp 连接;假设不承受长连接就会返回 Connection :close 。正确的理解 keep-alive 必需对 tcp/ip 协议有肯定的了解6.Cookie :这个值是效劳器存储在客户端的数据,cookie 是一组键值对, 用;分隔开。Cookie有很

8、多重要的学问点,对web 开发人员来说极其重要,以后会单独来说明。7.Host :这个值对应的是效劳器域名或者ip 地址。8.User-Agent: 这个值描述了客户端的具体信息。假设你想写一个简洁的爬虫软件,没有这个字段的话,是会被一些效劳器拦截的曾经爬网易的时候就遇到过这个问题。上面的这些是chrome 恳求 oschina 时的恳求头信息, 协议规定的恳求头固然远远不止上面说的这些,下面我们再说一些比较常用的恳求头:1.Referer: 当点击某个网页的的a 标签时或者表单提交时,会带上这个值,告知效劳器,这个恳求时从哪个页面来的,这样效劳器通过这个值就可以统计流量都是从哪里来的,一些广

9、告效劳供给商就是靠这个值来收费的。2.if-modified-since:这个值是效劳器上次响应时恳求时发送给客户端的务器看到这个字段,假设在这段时间没有修改正资源,效劳器就会返回modified ,假设修改了,就返回资源。date 时间,假设服304not3.if-none-match: 这个值的意义跟if-modified-since一样,也是一个条件恳求,但这个值比上面的值有增加效果,由于文件即使修改时间变了,不肯定说明资源变了。4.Range :可以告知效劳器,只恳求资源的一段,值可以是这样个,可以做到断点下载。bytes=100-1000 ,通过这5.Authorization :当效劳器资源需要权限才能访问时,客户端会带上这个恳求头信息,将认证信息通过这个字段传递给效劳器,通常这个值会承受base64 编码,将username:password类型的值编码后通过网络传递给效劳器,由于的,不够平安,所以现在的平安把握很少用这种方式,一般是用base64 编码是可逆 s 。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号