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

news/2024/10/30 19:25:02/

文章目录

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


前言

仅以此文章记录学习历程


一、初识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)
    在这里插入图片描述

http://www.ppmy.cn/news/21408.html

相关文章

linux 下ARC的中断机制

linux 下ARC的中断机制 一、Idu 中断控制器初始化 Idu 是arc 处理器内部中断控制模块, 类似于arm 内部的gic 中断控制模块 首先,Idu中断控制器在初始化时, 会解析DTS信息中定义了几个idu控制器,每个Idu控制器注册一个struct irq_domain数据…

洛谷 P2983 [USACO10FEB]Chocolate Buying S

这题其实不难&#xff0c;但时间复杂度是大难点 题目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Chocolate Store features N (1 < N < 100,000) kinds of chocolate in essentially unlimited quantities. Each type i o…

力扣刷题记录——1002. 查找共用字符、905. 按奇偶排序数组、 977. 有序数组的平方

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《力扣刷题记录——1002. 查找共用字符、905. 按奇偶排序数…

高阶导数——“高等数学”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是高阶导数&#xff0c;在这之前&#xff0c;我们学习了导数的概念和函数的求导法则&#xff0c;那么今天&#xff0c;就让我们一起进入高阶导数的世界吧 一、高阶导数的定义 二、高阶导数的计算 1.直接法 2.间…

C语言---选择排序和堆排序

文章目录前言一、简单选择排序1.简介2.算法思路3.代码实现二、堆排序1.简介2.算法思路3.代码实现总结前言 堆排序是选择排序的一种&#xff0c;今天我们讲解一下堆排序和简单选择排序 一、简单选择排序 1.简介 选择排序&#xff08;Selection sort&#xff09;是一种简单直观…

产业互联网曾被认为是一个生搬硬凑出来的概念

有关产业互联网的质疑&#xff0c;依然还在耳畔会响。但&#xff0c;我们却无可避免地进入到了产业互联网的周期里。这听上去有些耸人听闻&#xff0c;却在真实地发生着。曾经&#xff0c;产业互联网被认为是一个生搬硬凑出来的概念&#xff0c;甚至还有人认为&#xff0c;它仅…

【链表之单链表】

前言&#xff1a;链表是什么&#xff1f; 链表的操作 1.单链表的结构 2.头文件的包含 3.动态申请一个节点 4.单链表打印 5.单链表尾插 6.单链表头插 7.单链表尾删 8.单链表头删 9.单链表查找 10.单链表在pos位置之后插入x 11.单链表在pos位置之前插入x 12. 单链表…

【Linux系统】第五篇:Linux中编译器gcc/g++的使用

文章目录一、编译工具gcc/g二、程序编译的过程&#x1f384;预处理&#x1f384;编译&#x1f384;汇编&#x1f384;链接三、动态链接和静态链接&#x1f33b;动态链接&#x1f33b;静态链接&#x1f33b; 程序动、静态链接的区分一、编译工具gcc/g gcc/g 分别是 C/C 的编译器…