01.前端http协议回顾

一、http1.0和1.1之间有什么区别?

http1.0:每一次请求/响应都会建立并关闭一次连接,相应速度慢。

http1.1:在同一个tcp连接中,可以传输多个响应或请求.http1.1默认还开启长连接。

二,客户端请求。

/HTTP/1.1 #动作和HTTP协议的版本号,

主持人:www.test.com: 8088, #客户端访问的主机地址:

连接维生,#长连接

接受:text/html, application/xhtml + xml应用程序/xml; q=0.9, p_w_picpath/webp */*; q=0.8, #当前浏览器所能解析的数据类型

Upgrade-Insecure-Requests: 1

user - agent: Mozilla/5.0(麦金塔电脑;Intel Mac OS X 10 _11_6) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/50.0.2661.102 Safari/537.36, #客户端的操作系统以及浏览器等信息。

接受编码:gzip、缩小,sdch, #浏览器用来告诉服务器,自己支持的编码类型。

接收语言:应用,zh型;q=0.8 #浏览器当前的语言信息。

客户端请求头,大概分为四部分:

请求首行,,#请求方式请求路径协议和版本,例如:GET/索引。html HTTP/1.1

请求头信息;#请求头名称:请求头内容,即为关键:价值格式,例如:主持人:localhost

空行,,,#用来与请求体分隔开

请求体。,#有没有请求体,只有帖子有请求体。

请求

特点

http默认的请求方式为获得。

请求没有任何请求体。

一个得到请求,大小一定在1 k之内。

请求的内容,会暴露在地址栏中。

产生得到请求的操作:

在浏览器地址栏中输入一个URL,这一定会是个得到请求。

点击页面上的一个连接,也会是一个让请求。

提交表,单默认情况下是得到,可以设置为职位。

下面是一个浏览器去访问百度搜索时,产生的请求头信息:

接受:text/html, application/xhtml + xml应用程序/xml; q=0.9, p_w_picpath/webp */*; q=0.8

#浏览器用来告诉服务器,自己这里可以解析的文档类型,其实这里包含了*/*,就表示什么都可以接收。

接受编码:gzip、缩小,sdch

#支持的压缩格式。数据在网络上传递时,可能服务器会把数据压缩后再发送

接收语言:应用,zh型;q=0.8

#当前客户端支持的语言,可以在浏览器的工具选项中找到语言相关信息

cache - control:信息=0

连接:维生

#浏览器告诉服务端支持长链接的方式,保持一段时间链接,默认为3000 ms

饼干:BAIDUID=7 ad83d51481d0be4db3250b5273a7a01: FG=1;BIDUPSID=7 ad83d51481d0be4db3250b5273a7a01;PSTM=1483207633;BCLID=599596736169088288;,

#因为不是第一次访问这个地址,所以会在请求中把上一次服务器响应中发送过来的饼干在请求中一并发送去过;这个饼干的名字为BAIDUUID, FG, BIDUPSID.PSTM, BCLID。

#如果对饼干不理解的话,可以先把饼干当成一个字典,这个字典里可以放多组键值对,

BDSFRCVID=B9_sJeCGQG04CSbZK5LXuyRgDeKKnW7TH6aP2rQCi3AO4CkVJ2uIEG0Ptf8g0KubaKiaogKK0gOTH65P;H_BDCLCKID_SF=tJAD_CtatD-3ejrnhCTVMt_e2x7-2D62aKD * * * 3 n-hcqep3hqt0mlptvw44twtntmgrmkn5cwbrrmubsj4qmdrduluue3x4j0k3padoawl5nhmjmb67jdmp0-xqia4oy523ion3vqpp-mftud6-ajjo0dg8skc62atolbrjomjnqd6rnhpf3qjt3kp6-3mbi3b4j5motyqkh8hrg2q5jq-luyututh47jd6totol0bi5eqamlpr4y6d0ytoxjpoj5jbmopvakjjvjjjvburvd——g3-Aqtl8EtJAD_CtatD-3ejrnhCTVMt_e2x7-2D62aKDs5DT7-hcqEp3hQT0MLptVW44tWpvtMGrMKn5cWbrRMUbSj4QmDRDuLUue3x4J0K3paDoaWl5nhMJmb67JDMP0-xQia4oy523ion3vQpP-Mftu-n5jHjJ0DNt83e;BD_CK_SAM=1;PSINO=1;BD_UPN=123253;H_PS_645EC=c485lXcS % 2 f7fbterrh33 % 2 fhldui6nybw8pijq % 2 f % 2 f54a4h75m4rucmvssjdxxbg;BDORZ=B490B5EBF6F3CD402E515D22BCDA1598;BDSVRTM=0;BD_HOME=0;H_PS_PSSID=1454 _21081_21673_20930;__bsi=12503378464846675469 _00_815_r_n_6_0303_c02f_n_i_i_0

主持人:www.baidu.com

Upgrade-Insecure-Requests: 1

user - agent: Mozilla/5.0(麦金塔电脑;Intel Mac OS X 10 _11_6) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/50.0.2661.102 Safari 537.36

推荐人:http://www.baidu.com 

#注意! !推荐人这个标记,只有在通过其他url上连接过来之后,才会产生,请求来自哪个页面,例如你在百度上点击链接到了这里,那么推荐人:http://www.baidu.com;如果你是在浏览器的地址栏中直接输入的地址,那么就没有推荐人这个请求头了。

,,2.职位请求。

特点:

请求的数据不会出现在地址栏中。(提交给服务端的参数,都会被放进请求体。)

数据的大小无上限。

有请求体。

当遇到中文会使用url编码。

在这解释下什么是url编码。

我们都知道Http协议中参数的传输是“键=值”这种简直对形式的,如果要传多个参数就需要用符“,”号对键值对进行分割。如“? name1=value1& name2=value2 ",这样在服务端在收到这种字符串的时候,会用“和”分割出每一个参数,然后再用“=崩捶指畛霾问怠?/p>

01.前端http协议回顾