HTML实用指南 | 青训营笔记

60 阅读3分钟

HTML实用指南 | 青训营笔记

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

(仅供自己参考,技术点请看字节整理的资料和相应官方技术文档)

这是前端入门 - 工程篇系列里的第2篇《HTML实用指南》

1. 本堂课重点内容:

1.1 课程介绍

  1. HTTP协议简介
  2. HTTP协议的基本结构与发展历程
  3. 常见场景中的HTTP协议应用
  4. 在不同的环境中发起HTTP请求
  5. 知识扩展,了解更多网络通信协议
  1. 复习,都是概念
  • 浏览器输入网址后,究竟发生了什么

  • HTTP协议历史(什么时候增加了状态)

  • 这个图要能口述

  • image-20230216191512543

  • Method

    • 安全的请求,aka不会修改服务器数据的方法,读(GET HEAD OPTIONS)
    • 幂等的请求:同样的请求执行一次与连续执行多次的效果是一样的,且服务器的状态也是一样的。
  • 状态码

    304:资源/缓存未修改

    401:客户端的请求没有携带权限信息

  • 常用请求头Header

    Content-Type: 表明是JSON还是FORM DATA

    与缓存相关的协议头

    Cookie:HTTP是无状态的请求,但希望带入比如用户是否登录的请求

  • 常用响应头

  • 缓存:请求的资源本地若有,是否是强缓存/ 可以直接用;没有,那有协商缓存吗?。需要验证这个缓存是否是最新的,因此需要设定一些东西来做这个验证步骤

    • 有一个流程图
  • Cookie

    • Set-Cookie字段:server返回,让浏览器设置的一些字段信息
  • 为什么说HTTP2更快、更稳定、更简单(看图)

    • 帧是传输的最小单位,数据压缩(更快)
    • 服务器推送:在stream1中解析到import了js和css文件,则服务器主动推送这两个资源
  • HTTPS:经过加密(看图,能口述)

场景分析

  • 状态码200一定发起了请求吗?

  • 登录

    • 跨域:网址由scheme+host name+port组成;只要有一部分不同,就是跨域www.eample.com:443
    • 跨域请求如何被处理(访问控制的协议头accept-control,来做跨域是否能被访问)
    • POST:提交登录表单
    • 为什么刷新后能记住登录状态:session+cookie鉴权(第一次POST,在server创建一个session并种在cookie中)后续;JWT(JSON web token)
    • SSO单点登录(不同域名/子应用,但是只登录一次就可,登录信息可以共享,这是怎么做到的)

实际使用

  • 如何发起http协议

    AJAXXHR

    Fetch可以避免回调地域的问题;支持Promise

  • 在node中发起请求

  • axios请求库(Fetch和axios简单了好多)

WebSocket:实时性要求特别高--全双工通讯

1.2 课程重点

2. 详细知识点介绍:

三、实践练习例子:

  • 有什么实践举例帮助理解知识点?

四、课后个人总结:

  • 本章有什么知识点不容易掌握?
  • 什么地方容易与其他内容混淆?

五、引用参考:

参考链接:juejin.cn/post/718916…

  • 学习建议:

    • 相对来讲HTTP协议的常用知识不复杂,“基础篇”材料中,MDN 可以作为工具查询,“图解 HTTP” 与 “HTTP 权威指南” 选择一个阅读,作为体系化学习资料

    • 进阶篇中提供的是标准协议描述,感兴趣的同学阅读即可,也可作为工具使用

    • 基础篇

    • 进阶篇

      • Hypertext Transfer Protocol version 2 - RFC9113
      • HPACK - Header Compression for HTTP/2 - RFC7541