浅谈HTTP

什么是http

  1. http ,即Hyper text Transfer Protocol,超文本传输协议;
  2. 它是一种应用层协议,基于TCP协议;
  3. 特征:请求,响应,简单可扩展,无状态(意为每次请求都需要重新建立连接,而不会保留上次的连接信息);

发展史

  1. http/0.9 ,单行协议;
    通过GET请求方式请求服务器数据,响应的一般也为HTML文档。

  2. http/1.0 ,构建可扩展性;
    增加了Header,有了状态码,支持多种文档类型。

  3. http/1.1 ,标准化协议;
    链接复用,增加了缓存,内容协商;

  4. http/2 ,更优异的表现;
    产生了二进制协议,压缩了Header,服务器推送;

  5. http/3 ,即将推出;

协议分析:报文

1.安全的请求类型:get,head,options,这些是不会修改服务器数据的方式。
Indempotent(幂等),同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有安全的请求方式都是幂等的,类型有:get,head,options,put,delete;
2.状态码,常见状态码,1开头表示请求已接受,可以继续处理;2开头表示客户端请求成功;3开头表示重定向,如301表示请求地址变更,请求资源永久转移,302表示请求地址临时变更,304表示走缓存数据;4开头表示客户端错误,如401表示未授权(Unauthorized),403表示用户无权限访问(Forbidden),404表示客户端请求资源不存在(Not Found),也常发生在用户的请求地址输入有误。5开头表示服务器错误,500表示未知错误,504表示请求超时或服务器宕机等原因。

常见请求头

Accept接受类型,表示浏览器支持的MIME类型(对服务端返回的Content-Type)
Content-Type客户端发送出去的实体内容的类型
Cache-Control指定请求和响应遵循的缓存机制,如no-cache
If-Modified-Since对应服务端的last-Modified,用来匹配文件是否变动,只能精确到1s之内
Expries缓存控制,在这个时间内不会请求,直接使用缓存,服务端时间
Max-Age代表资源在本地缓存多少秒,有效时间内不会请求,而是使用缓存
If-None-Match对应服务端Etag,用来匹配文件内容是否改变(很精确)
Cookie有cookie并且同域访问时会自动带上
Referer该页面的来源URL
Origin最初的请求是从哪里发起的(精确到端口),比referer注重隐私
User-Agent用户客户端的一些必要信息

常用响应头

Content-Type服务端返回的实体内容的类型
Cache-Control指定请求和响应遵循的缓存机制,如no-cache
If-Modified请求资源的最后修改时间
Expries应该在什么时候认为文档已经过期,从而不再缓存它
Max-Age客户端的资源在本地缓存多少秒,开启了Cache-Control后有效
Etag资源的待定版本的标识符,类似指纹
Set-Cookie设置和页面关联的Cookie,服务器通过这个头部把cookie传给客户端
Server服务器的一些相关信息
Acess-Control-Allow-Origin服务器端允许的请求头部如(*)

缓存

强缓存

Expires表示时间戳,开启Cache-Control即代表可缓存性,no-cache参数表示协商缓存验证,no-store不使用任何缓存;
max-age:单位s,存储的最大周期,相对于请求的时间;

协商缓存

Etag/If-None-Match:资源的特定版本的标识符,类似于指纹
Last-Modified/If-Modified-Since:最后修改时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lucaserylory

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值