HTTP实用指南|青训营笔记

68 阅读2分钟

这是我参与[第四届青训营]笔记创作活动的第5天。此笔记用于记录课上所讲内容。

一、初识

1、什么是HTTP HTTP:Hyper Text Transfer Protocol超文本传输协议 应用层协议,基于TCP协议 请求响应 简单可扩展 无状态

二、协议分析

1、报文结构

Method: 协议分析.png

①Safe:不会修改服务器的数据的方法 GET HEAD OPTIONS

②Idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有safe的方法都是Idempotent的 GET HEAD OPTIONS PUT DELETE

状态码含义:

状态码含义.png RESRful API:

RestFul.png

常用请求头:

常用请求头.png 常用响应头:

常用响应头.png 缓存:

①强缓存:

强缓存.png ②协商缓存:

协商缓存.png

cookie:

Cookie.png 2、发展历程

①HTTP/0.9单行协议:请求GET/mypage.html;响应只有html文档

②HTTP/1.0构建可扩展性:增加了Header,有了状态码,支持多种文档类型

③HTTP/1.1标准化协议:链接复用,缓存,内容协商

④HTTP/2更优异的表现:二进制协议,压缩header,服务器推送 优点:更快,更稳定,更简单

HTTP/2的优点如何实现的?

帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,也会标识出当前帧所属的数据流。

消息:与逻辑请求或响应消息对应的完整的一系列帧。

数据流:已建立的连接内的双向字节流,可以承载一条或多条消息。

HTTP/2连接都是永久的,而且仅需要每个来源一个链接

⑤HTTP/3草案

HTTPS(Hyper Text Transfer Protocol Secure),经过TSL/SSL加密

对称加密:加密和解密都是使用同一个密钥

非对称加密:加密和解密需要使用两个不同的密钥:公钥和私钥

三、常见场景

静态资源

方案:缓存+CDN+文件名hash CDN(Content Delivery Network)

通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。