前端与Http|青训营笔记

71 阅读4分钟

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

今天主要跟着杨超男老师学习了Http协议的知识,充分弥补了我理论方面较为匮乏的知识,收获很大。

一,本节课重点内容

本节课主要讲了

  • http的背景和特点
  • 报文结构
  • 发展历史
  • 常见场景
  • 在浏览器和node中的实际使用
  • 除了http外其他的协议

二,详细知识介绍

我们在打开浏览器后出现的网页信息等等往往会使用http用于传输。http全称超文本传输协议(Hyper Text Transfer Protocol),他是一个应用层协议,基于TCP的协议。

它具有如下特性

  • 请求和响应
  • 简单可扩展
  • 无状态

附一下杨老师的图

image.png

http协议从最早的只支持get,响应只有html的http0.9不断发展,到简单可扩展的http1.0,这时候的http就开始支持多种文档类型了,还增加了状态码和header。到http1.1的时候http又增加了很多特性,包括经典的缓存,链接复用,内容协商等等。http1.1已经属于标准化的http协议了,有一些公司还在用http1.1。到了更新的http2了,它具有更优异的表现,支持二进制协议,压缩header,服务器推送......现在已经推出http3的草案了。

接下来我们又学习了htto报文

Methoddecription
Get请求一个指定资源的表示形式,使用Get请求应该只被用于获取数据
Post用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用
Put用请求有效载荷替换目标资源的所有当前表示
Delete删除指定的资源
Head请求一个和Get请求的响应相同的响应,但是没有响应体
Connect建立一个由目标资源标识的服务器隧道
Options用于描述目标资源的通信选项
Trace沿着到目标资源的路径执行一个消息环回测试
Patch用于对资源应用部分修改

我们在使用Method的时候往往会考虑两点:

  • Safe:不会修改服务器数据的方法
  • Idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有Safe的方法都幂等的。

接下来我们看一下协议状态有码

  • 200---OK
  • 301---资源(网页等)被永久迁移到其他URL
  • 302---临时跳转
  • 401---请求未被授权
  • 404---请求的资源不存在,可能受输入了错误的URL
  • 500---服务器内部发生了不可预期的错误
  • 504---Gateway Time Out

接下来老师介绍了RestFul风格和请求头。附上杨老师的图

image.png

image.png

接下来老师介绍了缓存的知识,包括强缓存和协商缓存或者可以指定不使用任何缓存。

接下来老师详细介绍了cookie。

Name=value各种cookie的名称和值
Expires=DateCookie的有效期,缺省时Cookie仅在浏览器关闭之前有效
Path=Path限制指定的Cookie的发送范围的文件目录,默认是当前
Domain=domain限制Cookie生效的域名,默认为创建Cookie服务的域名
Secure仅在Https安全连接时,才可以发送cookie
HttpOnlyJs脚本无法获取Cookie
SameSite=[None,strict,Lax]None同站跨站请求都可以发送,Strict仅在同站可以发送,Lax允许与顶级导航栏一起发送,并与第三方网站发起的get请求一起发送

接下来老师详细介绍了Https和Http2的特性。

然后老师教了我们打开控制台调试网络请求,查看首发信息。接下来又带我们实际分析了一下登录的场景。最后实战教了我们Ajax,axios发送请求,最后介绍了新协议QUIC的特点,超强的性能与安全,并解决了拥堵问题等。

收获

这节课充分弥补了我理论方面较为匮乏的知识,收获很大。