HTTP 实用指南 | 青训营笔记

103 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第8天,整理一下之前课上关于 HTTP 的相关知识。

一、本节课重点内容

  1. 什么是 HTTP
  2. HTTP 报文包含哪几部分内容
  3. 在实际场景中如何完成 HTTP 请求和对网络进行优化

二、详细知识点介绍

1. 从在浏览器中输入网址到页面显示,中间发生了什么?

image.png

2. 什么是 HTTP

Hyper Text Transfer Protocol(超文本传输协议)

  • 应用层协议,基于 TCP 协议
  • 分为请求和响应两部分
  • 简单可扩展
  • 无状态

3. 报文分析

image.png

  • 请求方法:

image.png

OPTIONS 常用于在跨域请求的场景下对服务器进行预请求,获知服务器是否允许该跨域请求

  • 状态码:

    • 1xx:服务器收到请求,但需要请求者继续执行操作
    • 2xx:操作被成功接收并处理
    • 3xx:重定向,如 301 表示资源被永久转移到其它 URL,302 表示临时重定向
    • 4xx:客户端错误,如 401 表示需要用户完成身份认证,403 表示服务器拒绝客户端发送的请求,404 表示客户端请求的资源不存在
    • 5xx:服务端错误,如 500 表示服务器内部发生了不可预期的错误,502 表示作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应,504 表示充当网关或代理的服务器,未及时从远端服务器获取请求
  • 请求头:

image.png

  • 响应头:

image.png

详细内容可以参考:HTTP 状态码 | 菜鸟教程 (runoob.com)

  • 缓存:强缓存和协商缓存

image.png

  • cookie(响应头中的 Set-Cookie)

image.png

4. 场景分析

  • 静态资源
    • 方案:缓存 + CDN + 文件名 hash
  • 登录
    • 鉴权:
      • Session + cookie
      • JWT(JSON Web Token)
    • SSO(单点登录):在多个系统中,用户只需一次登录,各个系统即可感知该用户已经登录
  • AJAX
    • XMLHttpRequest
    • Fetch
    • axios
  • 用户体验
    • 网络优化 image.png

    • 稳定性

image.png

5. WebSocket

  • 浏览器与服务器进行全双工通信的网络技术
  • 典型场景:实时性要求较高,如:聊天室
  • URL 使用ws://wssL://开头

三、课后个人总结

这节课上老师主要结合报文讲解了 HTTP 中的一些重要概念,以及进行网络优化的措施。作为 Web 前端开发人员,掌握必要的和网络相关的知识才能更好地解决开发中遇到的问题,而这一部分也是面试中经常会被问及的内容。因此有时间了一定要系统地整理一遍,结合面经进行查漏补缺。

四、引用参考