本文主要参考慕课网Jokcy老师课程HTTP协议原理+实践
请支持正版,抵制盗版,维护每一位辛苦付出的人的合法权益!
本章关键词:cors、缓存、cookie、session、Redirect、CSP
开始更新http基础相关内容,先发一部分,本系列会很快完结,后续内容待定,可能是并发内容,也可能数据结构
一、认识HTTP客户端
-
最常用的HTTP客户端:浏览器
curl请求.png
二、CORS跨域请求的限制与解决
- 服务端返回的时候,返回头加入:Access-Control-Allow-Origin:'*'
这个是浏览器提供的功能,浏览器会判断跨域的返回头是否有Access-Control-Allow-Origin,否则浏览器会屏蔽返回内容
浏览器允许在标签中加载链接(如src)跨域
- 跨越其他解决方案和http协议没太大关系,暂时未列出
三、CORS跨域限制以及预请求验证
- 跨越的时候允许的方法
GET HEAD POST
- 允许的Content-Type
text/plain multipart/form-data application/x-www-form-urlencoded
- 预请求
Access-Control-Allow-Headers 允许的请求头
四、缓存头Cache-Control的含义和使用
1.特性
- 可缓存性
public/ private/ no-cache
- 到期
max-age=<seconds>/s-maxage=<seconds>/max-stale=<seconds>
- 重新验证
must-revalidate/proxy-revalidate
- 其他
no-store/no-transform
五、缓存验证Last-Modified和Etag的使用
1.Last-Modified
- 上次修改时间
- 配合If-Modified-Since或者If-Unmodified-Since使用
- 对比上次修改时间以验证资源是否需要更新
2.Etag
- 数据签名
- 配合If-Match或者If-Non-Match使用
- 对比资源的签名判断是否使用缓存
六、cookie和session
1.cookie
- 定义:
是在服务端返回数据的时候通过Set-Cookie设置到浏览器,保存到浏览器里面的内容 - 下次请求会自动带上
- 键值对,可以设置多个
- 属性
max-age和expires设置过期时间
Secure只在https的时候发送
HttpOnly无法通过document.cookie访问
2.session
- 使用最多的是使用cookie保存session,但是session的实现方法不止这一种