字节跳动青训营--前端day5


前言

仅以此文章记录学习历程


一、初识HTTP

HTTP (HyperText Transfer Protocol)

  • 超文本运输协议:是实现网络通信的一种规范
  • 是应用层协议,基于TCP协议
  • 分为请求响应两个部分
  • 简单可拓展(支持自定义,如:header等)
  • 是无状态协议

拓展—输入地址到页面渲染发生了哪些事情

在这里插入图片描述
详细了解地址:web前端面试系列(这是我觉得讲的比较详细的一篇文档了)

二、协议分析

1.发展

在这里插入图片描述

2.报文

  • 客户端发送的叫请求报文
  • 服务器发送的叫响应报文
    请添加图片描述

如上图:主要分为三部分:

2.1 请求报文:

请求行:

主要分为三个部分:请求方法请求路径http的版本

请求方法:(前4为常用方法)
在这里插入图片描述

请求头

HTTP header fields。指在HTTP的请求响应消息中的消息头部分

作用:它们定义了一个超文本传输协议事务中的操作参数

请求头作用
Host指明了请求将要发送到的服务器主机名和端口号
User-Agent用户代理;可以用来区分软件类型,操作系统,手机还是浏览器,软件开发商等
Accept接收类型,表示浏览器支持的MIME类型(对标服务端返回的Content-Type)
Connection决定当前的事务完成后,是否会关闭网络连接
Upgrade-Insecure-Requests表示客户对加密和认证响应的偏好
Content-Type客户端发送出去实体内容的类型
Content-Length客户端发送出去实体内容的长度
Cache-Control指定请求和响应遵循的缓存机制,如no-cache
lf-Modified-Since对应服务端的Last-Modified,用来匹配看文件是否变动,只能精确到1s之内
lf-None-Match对应服务端的ETag,用来匹配文件内容是否改变 (非常精确)
Expires缓存控制,在这个时间内不会请求,直接使用缓存,服务端时间
Max-age代表资源在本地缓存多少秒,有效时间内不会请求,而是使用缓存
Cookie有cookie并且同域访问时会自动带上
Referer该页面的来源URL(适用于所有类型的请求,会精确到详细页面地址,csrf拦截常用到这个字段)

HTTP头部字段可以自己根据需要定义

主体

常用于post和put等请求传递参数

2.2 响应报文:

状态行

主要分为三个部分:http版本状态码状态信息
常见状态码:
在这里插入图片描述

响应头
响应头作用
Server指明了服务器应用程序软件的名称和版本
Content-Type服务端返回的实体内容的类型
Content-Length服务端返回的实体内容的长度
Date报文创建的日期和时间
Keep-Alive连接的状态(可以用来设置超时时长和最大请求数)
Connection决定当前的事务完成后,是否会关闭网络连接
Age对象在缓存代理中存贮的时长
Last-Modified请求资源的最后修改时间
Expires应该在什么时候认为文档已经过期,从而不再缓存它
Max-age客户端的本地资源应该缓存多少秒,开启了Cache-Control后有效
ETag资源的特定版本的标识符,Etags类似于指纹
Set-Cookie设置和页面关联的cookie,服务器通过这个头部把cookie传给客户端
Access-Control-Allow-Origin服务器端允许的请求Origin头部 (警如为*)
响应正文

通常用来返回响应体

2.3缓存

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.发展

3.1 Http2

相比之前版本更快、更稳定、更简单

  • HTTP/2连接都是永久的,而且仅需要每个来源一个连接
  • 流控制:阻止发送方向接收方发送大量数据的机制
  • 服务器推送

新增特性:

  • 多路复用:在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应,这样就避免了”队头堵塞”
  • 二进制分帧:采用二进制格式传输数据,而非 HTTP 1.x的文本格式,解析起来更高效
  • 首部压缩:在客户端和服务器端使用“首部表”来跟踪和存储之前发送的键值对,对于相同的数据,不再通过每次请求和响应发送
  • 服务器推送:这种方式非常合适加载静态资源,免得客户端再次创建连接发送请求到服务器端获取

3.2 Https

HTTPS : Hypertext TransferProtocol Secure
经过TSL/SSL加密

加密类别:

  • 对称加密:加密和解密都是使用同一个密钥
  • 非对称加密:加密和解密需要使用两个不同的密钥:公钥 (public key)和私钥 (private key)
    在这里插入图片描述

三、拓展

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是发财不是旺财

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

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

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

打赏作者

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

抵扣说明:

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

余额充值