HTTP协议相关

什么是协议?

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议),用于客户端和服务器之间的通信, 目前使用的版本为1.1。属于网络七层协议中的应用层协议。(应用层,表示层,会话层,传输层,网络层,链路层, 物理层)。

http协议特点

无状态。指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息, 则它必须重传。

基于http协议层面的前后端的交互

1.客户端发起http请求,通过 socket与服务器端建立tcp连接(三次握手)。

2.发送请求报文。

3.服务端接收到请求后,进行相应处理并以报文的形式返回。

4.断开连接(四次挥手)。

请求和响应头共有的头字段

Remote Address:请求的远程地址
Request URL:请求的域名
Request Method:页面请求的方式:GET/POST
Status Code:请求的返回状态

请求报文

请求头

origin:页面的来源,跨域时使用。 当服务器返回时,浏览器将检查response中是否包含Access-Control-Allow-Origin字段,当缺少这个字段时,浏览器将abort, 就好像没有请求过。当存在这个header时,浏览器将检查当前请求所在域是否在这个access-control-allow-origin所允许的域内, 如果是,继续下去,如果不存在,abort! 跨域的时候get,post都会显示origin,同域的时候get不显示origin,post显示origin。

referer:显示页面来源。使用场景: 1、统计访问量。例如百度中某个网站的访问量。从百度发起对目标服务器请求 2、防盗链。如果是来源是允许的,则允许访问,否则需要直接跳转到原页面进行访问。不允许从其他网站直接访问本站内容。

connection :浏览器与服务器之间的连接,keep-alive(长连接)。

proxy-connection:通过代理去请求,由connection转变成。是否使用了代理。

Host: 请求服务器的网址。

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0 ——浏览器版本信息

BUTONG FANGSHI Accept: application/json, text/plain, / ——希望服务器提供的内容的数据类型。

origin:页面的来源,跨域时使用。

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2——支持的语言。

Accept-Encoding: gzip, deflate —浏览器支持的压缩格式。

请求行

请求方法

GET:获取资源;

POST:传输实体主体;

OPTIONS:预检,询问支持的方法;

PUT:传输文件;

HEAD:获得报文首部;

DELETE:删除文件

TRACE:追踪路径(Max-Forwards);

CONNECT:要求在与代理服务器通信时建立隧道, 实现用隧道协议进行TCP通信。(SSL/TLS)

请求体

例如:image.png

响应报文

响应行

HTTP/1.1 200 OK

响应头

Date: Mon, 07 Jan 2019 15:34:41 GMT —此条消息被发送时的日期时间

Content-Type: text/html; charset=UTF-8 —返回的数据类型

Transfer-Encoding: chunked —传输编码:分块编码

Connection: keep-alive —连接为长连接

Vary: Accept-Encoding —告诉代理服务器/缓存/CDN,如何判断请求是否一样

Content-Encoding: gzip —内容支持的压缩格式

Server: 服务器名称

Access-Control-Allow-Methods:GET,POST,OPTIONS,PUT,DELETE    ——服务器支持的方法

Access-Control-Allow-Credentials: true —是否允许发送cookie

Access-Control-Allow-Origin: 解决跨域问题,值为请求可允许的域

Access-Control-Allow-Headers: prelogid,Authorization,DNT,User-Agent, Keep-Alive,Content-Type,accept,origin,X-Requested-With,x-xsrf-token    ——允许的头

Age:响应对象在代理缓存中存在的时间,以秒为单位

Refresh:自动刷新响应头 例如:refresh:3;url=http://baidu.com

告诉浏览器不要缓存的响应头:Expire、Cache-Control、Pragma

Expire:-1;(服务器使用Expires头来通知浏览器,它能够使用当前缓存版本一直到指定的某一个时间点)

Cache-Control:no-cache;

Pragma: no-cache;

响应体

响应状态码

1XX:还没完成;

2XX:请求成功;

3XX: 重定向 ;

4XX:客户端错误;

5XX:服务端错误

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值