前端之http协议

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的最后修改时间,用它来判断浏览器中的数据是否要刷新.

原文地址:https://www.cnblogs.com/IQ-Python/p/6875215.html