HTTP|青训营笔记

44 阅读3分钟

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

一、本堂课重点内容:

什么是HTTP、HTTP的发展历程、静态资源。

二、详细知识点介绍:

1.什么是HTTP?

  • Hyper Text Transfer Protocol
  • 超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求响应
  • 简单可扩展
  • 无状态

2.协议分析

Method

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

状态码

  • 200 OK-客户端请求成功
  • 301 资源(网页等)被永久转移到其它URL
  • 302 临时跳转
  • 401 Unauthorized -请求未经授权
  • 404 请求资源不存在,可能是输入了错误的URL
  • 500 服务器内部发生了不可预期的错误
  • 504 Gateway Timeout-网关或者代理的服务器无法在规定 的时间内获得想要的响应。

RESTful API RESTfulAPI:一种API设计风格; REST - Representational State Transfer (1) 每一个URI代表一 -种资源; (2) 客户端和服务器之间,传递这种资源的某种表现层; (3) 客户端通过HTTP method,对服务器端资源进行操作,实现"表现层状态转化"。

常见请求头

QQ截图20230219200212.png

常见响应头

QQ截图20230219200306.png

缓存

  1. 强缓存
  • Expires,时间戳
  • Cache-Control
    可缓存性
    no-cache:协商缓存验证
    no-store :不使用任何缓存
    到期
    max-age: 单位是秒,存储的最大周期,相对于请求的时间
    重新验证重新加载*
    must-revalidate: 一.旦资源过期,在成功向原始服务器验证之前,不能使用
  1. 弱缓存
  • Etag/lf-None-Match:资源的特定版本的标识符,类似于指纹
  • Last-Modified/lf-Modified-Since:最后修改时间

3.HTTP/2

  • 帧(frame) :HTTP/2 通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流。
  • 消息:与逻辑请求或响应消息对应的完整的一系列帧。
  • 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息。
  • HTTP/2连接都是永久的,而且仅需要每个来源一个连接
  • 流控制:阻止发送方向接收方发送大量数据的机制.
  • HTTPS: Hypertext Transfer Protocol Secure
  • 经过TSL/SSL加密
  • 对称加密:加密和解密都是使用同一个密钥
  • 非对称加密:加密和解密需要使用两个不同的密钥:公钥(public key) .和私钥(private key)

4.静态资源

  • 静态资源方案:缓存+ CDN +文件名hash
  • CDN: Content Delivery Network
  • 通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务

三、课后个人总结:

通过对本次课程的学习让我对HTTP协议有了初步的了解,通过了解http的发展历程,让我了解到了http的组成以及到如今的https的组成,并且还了解到静态资源,通过缓存和CDN以及文件名的Hash来实现静态资源方案。

四、引用参考:

掘金-字节内部课程-HTTP