http://www.cnblogs.com/yuanchenqi/articles/6000358.html
http:是规定了浏览器和万维网服务器之间相互通信的规则,它有两个格式,客户端发送给服务端的格式叫’请求协议’,服务器发送给客户端的格式叫”响应协议”.
B(浏览器)------s(服务端)叫bs模式
请求协议的格式如下
请求首行:请求方式 请求路径 协议和版本 ,如GET index.html HTTP/1.1
请求头信息:请求头名称:请求头内容,即为key:value格式, 如下
Host:localhost :请求的主机名即服务端的ip加端口
accept:请求能接收到的文档类型
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding: 请求能接收到的压缩格式
gzip, deflate
accept-language:请求能接收到的语言
zh-CN,zh;q=0.8
cache-control:
max-age=0
cookie:是一个容器,在第一次访问某个地址时,从浏览器中把cookie容器发过去,在容器中装入在该地址中的操作,退出该地址中时,把装有数据的cookie又回到浏览器中,保存到本地,因为不是第一次访问这个地址,所以会在请求中把上一次服务器响应中发送过来的cookie在请求中一并发送过去
user-key=38cf2b16-8de6-4ae6-aad8-02169eed9e0a; cn=0; __jda=122270672.169444840.1490190764.1492507637.1494830664.6; __jdb=122270672.1.169444840|6.1494830664; __jdc=122270672; __jdv=122270672|direct|-|none|-|1494830663508; o2-webp=true; __jdu=169444840
upgrade-insecure-requests:
1
Referer:http://127.0.0.1 用来记录链接地址来源地址,主要跟盗链有关,还做统计工作
user-agent:把浏览器用户的系统版本和浏览器版本信息发送到服务端
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.108 Safari/537.36 2345Explorer/8.5.1.15355
空行: 用来与请求体分隔开
请求体 :浏览器向服务端发送的数据内容,即请求数据,get没有请求体,post有请求体
注:请求方式有两种,分别是GET 和POST.get请求时,会在url后面加请求数据,如
http://www.baidu.com:80/index.html?a=1&b=2 其中a=1和b=2是请求数据,它们通过?隔开,数据与数据通过&隔开
2.1get请求
http默认的请求方式就是get,它没有请求体,请求数据有一定的范围,get请求数据会暴露在浏览器的地址栏中
GET请求常用的操作:
1).在浏览器的地址栏中直接给出url,那么久一定是get请求
2).点击页面上的超链接也一定是get请求
3)提交表单时,表单默认使用get请求,但是我们一般设置成POST
2.2POST请求
1)数据不会出现在地址栏中,2)数据的大小没有上限,3)有请求体,4)请求体中如果存在中文,会使用url编码
响应协议
响应格式如下:
响应首行:协议和版本 状态码 即其对应解释 如HTTP/1.1 200 OK , HTTP/1.1是协议和版本,200是状态码,OK是对应状态码的解释
响应头信息: 一般是默认的,
空行 :用来与响应体分隔开
响应体: 发给浏览器的数据内容
3 状态码
响应首行对浏览器很重要,它说明了响应的真正含义
注last-Modified,它记录了index.html的最后修改时间,用它来判断浏览器中的数据是否要刷新.