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

文章目录

  • 前言
  • 一、初识HTTP
    • 拓展—输入地址到页面渲染发生了哪些事情
  • 二、协议分析
    • 1.发展
    • 2.报文
      • 2.1 请求报文:
        • 请求行:
        • 请求头
        • 主体
      • 2.2 响应报文:
        • 状态行
        • 响应头
        • 响应正文
      • 2.3缓存
    • 3.发展
      • 3.1 Http2
      • 3.2 Https
  • 三、拓展


前言

仅以此文章记录学习历程


一、初识HTTP

HTTP (HyperText Transfer Protocol)

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

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

字节跳动青训营--前端day5_第1张图片
详细了解地址:web前端面试系列(这是我觉得讲的比较详细的一篇文档了)

二、协议分析

1.发展

字节跳动青训营--前端day5_第2张图片

2.报文

  • 客户端发送的叫请求报文
  • 服务器发送的叫响应报文
    字节跳动青训营--前端day5_第3张图片

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

2.1 请求报文:

请求行:

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

请求方法:(前4为常用方法)
字节跳动青训营--前端day5_第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版本状态码状态信息
常见状态码:
字节跳动青训营--前端day5_第5张图片

响应头

响应头 作用
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缓存

字节跳动青训营--前端day5_第6张图片
字节跳动青训营--前端day5_第7张图片
字节跳动青训营--前端day5_第8张图片

3.发展

3.1 Http2

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

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

新增特性:

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

3.2 Https

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

加密类别:

  • 对称加密:加密和解密都是使用同一个密钥
  • 非对称加密:加密和解密需要使用两个不同的密钥:公钥 (public key)和私钥 (private key)
    字节跳动青训营--前端day5_第9张图片

三、拓展

字节跳动青训营--前端day5_第10张图片
字节跳动青训营--前端day5_第11张图片

你可能感兴趣的:(字节跳动青训营--前端,前端,java,开发语言,字节跳动青训营,字节跳动)