[HTTP|青训营笔记]

75 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第5天。今天开始了有关HTTP方面的学习。

初识

HTTP(HyperTextTransferProtocol)是应用层的一个基于TCP协议的协议,协议简单可扩展,每个请求间是孤立的,属于无状态协议。

分析

发展

由初始的0.9单行协议到1.0构建可扩展性到1.1标准化协议,再到2更优异的表现,目前3也在草案阶段,HTTP自诞生就在不断随着用户需求而产生新的版本。 image.png

HTTP/2

HTTP/2相较于先前的版本更快、更稳定、更简单,采用帧作为通信最小单位,通过已建立的连接内的双向字节流承载一条或多条消息,同时其连接是永久的且仅需每个来源一个连接。

HTTPS

HTTPS相较于HTTP经过了TSL/SSL加密,使信息传输更加安全,加密方式分为对称加密和非对称加密。

报文

HTTP的报文分为请求报文和响应报文。请求报文分为请求行、请求头、请求体。

请求行

请求行以Method开头。HTTP的请求方法包括GET、POST、PUT、DELETE、HEAD、CONNECT、OPTIONS、TRACE、PATCH等,安全(不会修改服务器的数据)的方法有GET、HEAD、OPTIONS,幂等(执行一次与多次 的效果是相同的)的方法包括GET、HEAD、OPTIONS、PUT、DELETE(ps:安全的都是幂等的)

请求头

image.png

请求体

HTTP响应由状态行、响应头、响应正文三部分组成

状态行

状态行:HTTP版本+状态码+状态代码的文本描述

状态码:

  • 1xx 表示请求已被接受
  • 2xx 表示客户端请求成功
  • 3xx 表示重定向,要进行更进一步操作
  • 4xx 表示客户端错误使请求失败
  • 5xx 表示服务器错误而请求不能实现

响应头

响应头包括服务器类型、日期、长度、内容类型等 image.png

个人小结

个人感觉课程中所讲述的知识点较为零碎,仍需消化整理理清内部联系及框架。难理解的知识点不多,但要搞清各知识点的联系。