http协议

有关代码可访问下面网址下载:

https://github.com/ZJW0215/HTTPLearn.git 

1.输入url到http请求的完整过程


* 当输入url后先进行redirect操作:因为浏览器有可能已经记录了地址永久转换成了一个新的地址,所以浏览器需要判断是否需要redirect及redirect到哪里

*查看缓存,因为浏览器有可能已经将你要访问的资源缓存好了,如果没有,则开始向服务器请求

*输入的是域名,需要通过DNS服务器解析成对应的IP地址才能访问到对应的服务器,然后创建tcp连接

    进行三次握手:确认客户端与服务端的连接,防止服务端开启无用的连接,规避因网络延时等出现的问题

2.CORS预请求

跨域允许的方法(不需要进行预请求):POST、GET、HEAD

允许的Content-Type(不需要进行预请求):

       text/plain

       multipart/form-data

       application/x-www-form-urlencoded

还有请求头的限制

3.Cache-control缓存

*可缓存性

public:所有的都能够进行缓存操作

private: 只有发起请求的浏览器才能进行缓存

no-cache:能进行缓存操作,但需要等服务器验证后才能使用

*到期

max-age=<seconds>

s-maxage=<seconds>专门为代理服务器设置的

max-stale=<seconds>即使缓存过期后依然能够使用过期的缓存

*重新验证

must-revalidate

proxy-revalidate


no-store不能进行缓存,必须从服务器加载内容

no-transform不允许进行转化

4.资源验证



Last-Modified上次修改时间

配合If-Modified-Since或者 If-Unmodified-Since使用

对比上次修改时间以验证资源是否需要更新

Etag数据签名

配合If-Match或者If-Non-Match使用

对比资源的签名判断是否使用缓存

6.Cookie

通过Set-Cookie设置

下次请求会自动带上

Cookie是以键值对保存的,可以设置多个

max-age和expires设置过期时间

Secure只在HTTPS的时候发送

HTTPOnly无法通过document.cookie访问(安全性考虑)

session是保证定位到用户,是实现session的方案

7.数据协商

请求端:

Accept:通过这个来指定服务端返回的数据类型

Accept-Encoding:编码格式

Accept-Language返回的内容显示的语言

User-Agent 返回浏览器相关的信息

服务器端返回content:

Content-Type实际返回的数据格式

Content-Encoding压缩方式

Content-Language 语言


Content-security-policy内容安全策略

限制资源获取:default-src限制全局,制定资源类型

报告资源获取越权

http2优势:信道复用,分帧传输(同一连接可以并发的发送不同请求),server push(服务端主动的向客户端推送内容)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值