萌新笔记08 初入HTTP协议学习总结| 青训营

60 阅读2分钟

前言

HTTP协议是当今使用最为广泛的协议之一,也是客户端与服务端通信使用的基础协议。然而在学校的课程中对于HTTP一般只是粗略介绍,很少进行深入的学习和了解。如果能够深入了解HTTP工作的原理、了解HTTP框架的设计与实现,就能够更好地使用HTTP来进行项目的开发

HTTP协议是什么

Hypertext Transfer Protocol,简称HTTP,意为超文本传输协议。是一个简单的请求-响应协议,在一般情况下运行于TCP之上。协议定义了Web客户端如何从Web服务器请求Web页面、服务器如何把Web页面传输给客户端。即指定了客户端与服务器之间请求和响应消息传输的形式,规范制定了消息传输的内容格式,使得开发和部署直截了当。

为什么需要HTTP协议

服务器与客户端之间的数据交流需要有一定的格式,如同人与人之间用语言交流也得遵守语法一样。HTTP协议就如同规范客户端与服务器之间信息交流格式的语法,便于客户端与服务端之间的通信,使得数据传输变得更加稳定和安全。

需要明确的边界
  • 传输开始
  • 传输结束
能够携带信息
  • 消息内容
  • 消息类型

协议里有什么

1.png

Ⅰ.请求行/状态行

请求行中有

  • 方法名:常见方法名有POST、GET、HEAD、DELETE、PUT、PATCH等
  • URL
  • 协议版本

状态行中有

  • 协议版本
  • 状态码: 1XX信息类、2XX成功、3XX重定向、4XX客户端错误、5XX服务端错误
  • 状态码描述

Ⅱ.请求头/响应头

  • 请求头:客户端发送给服务端的一些信息,用键值对表示
  • 响应头:服务端返回给客户端的一些信息,用键值对表示

Ⅲ.请求体/响应体

  • 请求体:可能含有请求数据
  • 响应体:服务端回写给客户端的页面正文

请求流程

2.png

不足与展望

HTTP1
  • 队头阻塞
  • 传输效率低
  • 明文传输不安全
HTTP2
  • 多路复用
  • 头部压缩
  • 二进制协议
QUIC
  • 基于UDP实现
  • 解决队头阻塞
  • 加密减少握手次数
  • 支持快速启动