文章目录

  • 前言
  • 一、初识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)

三、拓展


字节跳动青训营--前端day5相关推荐

  1. 字节跳动青训营--前端day7

    文章目录 前言 一.Node.js 的应用场景 (why) 1. 前端工程化 2. web服务端应用 3. Electron跨端桌面应用 二.Node.js 运行时结(what) 1. V8 ,lib ...

  2. 第五届字节跳动青训营 前端进阶学习笔记(八)React框架入门

    文章目录 前言 React 的设计思路 1.传统JavaScript更新UI的痛点 2.我们对UI代码的需求 3.组件 (1)组件定义 (2)组件设计 (3)组件结构 4.React的生命周期 Rea ...

  3. 字节跳动青训营--前端day8

    文章目录 前言 一.CSR,SSR,SSG 1. CSR 2. SSR 3. SSG 4. SSR,SSG的优势 利于SEO 更短的首屏时间 二.什么是Next.js 三.Next.js客户端开发 1 ...

  4. 字节跳动青训营--前端day10

    文章目录 前言 一.web开发安全 - 攻击 1. Cross-Site Scripting(XSS) 1.1 存储型(Stored Xss) 1.2 反射型(Reflect Xss) 1.3 DOM ...

  5. 字节跳动青训营--前端day1

    文章目录 前言 一. 前端 1 前端的技术栈 2. 前端的边界 3. 前端的关注点 二. HTML 1. HTML常用标签及语义化 2. HTML 语法 3. 谁在使用我们写的HTML 前言 仅以此文 ...

  6. 字节跳动青训营--前端day3

    文章目录 前言 一.写好JavaScript的一些原则 二.各司其职 三.组件封装 四.过程抽象 前言 仅以此文章记录学习 一.写好JavaScript的一些原则 各司其职:让HTML.CSS和Jav ...

  7. 字节跳动青训营--前端day2

    文章目录 前言 一.css 1. css的组成 2. css三种使用方式 3.css的工作方式 二. css选择器Selector 1. 选择元素的方式 2. 伪类(pseudo-classes) 2 ...

  8. 第五届字节跳动青训营寒假 —— 前端专场

    第五届字节跳动青训营寒假 -- 前端专场 文章目录 第五届字节跳动青训营寒假 -- 前端专场 青训营 - 前端练习题 每日一练 编程题 前端编程题 [342. 4的幂](https://leetcod ...

  9. 前后端免费学,字节跳动青训营-暑假专场报名启动

    亲爱的小伙伴,你准备好了吗? 第六届字节跳动青训营,来咯! 无论你是初学者还是有一定经验 都可以在青训营找到属于自己的位置 全方位课程讲解 & 项目实践指导 让你轻松掌握「前端 or 后端」技 ...

最新文章

  1. Java 中的 BigDecimal,你真的会用吗?
  2. [转载] js 读取和输出txt文件
  3. android ip地址扫描,Android:手机扫描局域网所有ip,并进行socket通讯
  4. python中for循环和while循环的区别_Python中for循环和while循环有什么区别?
  5. 【LeetCode - 131】分割回文串(dp,dfs)
  6. HBM3内存子系统传输速率惊人,带宽突破1TB/S!
  7. 变量案例弹出用户名(JS)
  8. 技术出身要创业,容易吗?
  9. 区块链 以太坊 solidity 如何比较2个字符串相等
  10. 如何使用File APIs来读取文件
  11. orcl导入dmp语句_oracle用imp导入dmp文件的方法
  12. Axure原型APP设计规范
  13. kali中rarcrack命令爆破rar压缩包密码
  14. cm12 系统字体更换
  15. 压缩包文件解压找回密码
  16. 解决C#界面假死问题
  17. EasyExcel实现Mysql数据库Excel数据导出
  18. 当高铁遇到地面沉降 如何测量 怎么应对(转载)
  19. 也谈如何高效阅读源码
  20. 擎天架构加持,华为云Stack打算在混合云市场怎么打?

热门文章

  1. 管理类全系书单,速速码住(50本书籍全部附送!)
  2. 在vue中使用CKEditor5的巨坑!调整图片大小
  3. Docker 在 M1 Mac arm64架构上构建 amd64镜像。
  4. socket使用(recv踩坑)
  5. 接口报错500是什么意思_HTTP 500 内部服务器错误 ?是什么意思啊?
  6. iphone ios 动画
  7. Kubernetes and Cloud Native Meetup (广州站)资料下载 1
  8. NFV和VNF的区别和联系
  9. Hive中URL解析函数
  10. DropDownList不触发selectedindexchanged事件的原因