HTTP指南 | 青训营

78 阅读4分钟

HTTP其实是我们经常听到的一个词语,那么它的来源是什么,他的作用在何处,通过学习,我们会知道答案,对于如今我们了解网页功能原理,学习web应用开发有很大帮助。

通过本次课程的学习,我了解了HTTP的相关定义和历史发展,并且知道它的特征,以及在具体分析HTTP中,我能明白一些响应请求和状态码,之前有些不理解的地方现在都明白一些。

HTTP 协议的基本定义

HTTP是一种用于传输超文本的协议,是互联网上应用最为广泛的协议之一。HTTP 协议是基于客户端-服务器模式工作的,客户端向服务器发送请求,服务器返回响应。HTTP 协议是无状态的,也就是说服务器不会记录客户端的状态信息,每次请求都是独立的。

HTTP 协议安全性

由于 HTTP 协议是明文传输,它的安全性是很低的。

HTTP 协议的工作过程

HTTP 协议的工作过程可以分为以下几个步骤:

  1. 客户端 向服务器发送请求。
  2. 服务器接收到请求后,根据请求的 URL 和请求方法(GET、POST 等)来处理请求。
  3. 服务器处理请求后,返回响应给客户端。
  4. 客户端接收到响应后,根据响应状态码和响应内容来处理响应。

HTTP 协议主要特征

简单 无状态 可扩展 明文传输 基于TCP/IP 支持缓存

HTTP 协议发展历程

HTTP 0.9: 1991年发布,只支持GET方法,没有请求头和响应头,只能传输HTML格式的文本。 HTTP 1.0: 1996年发布,增加了POST和HEAD方法,引入了请求头和响应头,支持多种类型的数据传输。 块传输编码,引入了缓存机制和内容协商机制。 HTTP 2: 2015年发布,采用了二进制格式而不是文本格式,支持多路复用和服务器推送,提高了传输效率和安全性。 HTTP 3: 2020年发布草案,基于QUIC协议而不是TCP协议,解决了TCP的队头阻塞问题,提升了网络延迟和拥塞控制。

HTTP 协议的报文结构

HTTP 协议的格式可以分为请求格式和响应格式两种。

请求格式由请求行 、请求头和请求体组成,

响应格式由状态行、响应头和响应体组成。

请求格式: 请求行 请求头 请求体

响应格式: 状态行 响应头 响应体

响应与请求

HTTP 请求是由客户端(如浏览器)发送给服务器的请求消息。请求消息包含以下几个部分:

  1. 请求行:包含 HTTP 方法、请求资源的路径以及 HTTP 协议版本
  2. 请求报头:包含客户端请求的附加信息
  3. 请求体:包含客户端请求的内容数据

HTTP 响应是服务器返回给客户端的响应消息。响应消息包含以下几个部分:

  1. 状态行:包含 HTTP 协议版本、状态码和状态描述
  2. 响应报头:包含服务器返回的附加信息
  3. 响应体:包含服务器返回的内容数据

HTTP 协议定义了以下几种请求方法:

  1. GET:请求获取指定资源的内容信息
  2. POST:请求向指定资源提交数据进行处理请求,如提交表单、上传文件等
  3. HEAD:请求获取指定资源的元数据信息
  4. PUT:请求向指定资源位置上传其最新内容
  5. DELETE:请求删除指定资源
  6. CONNECT:用于将请求连接到代理服务器上,以建立隧道
  7. OPTIONS:请求查询指定资源的通信选项
  8. TRACE:请求回显服务器收到的请求信息,主要用于测试或诊断

HTTP 协议定义了多种状态码,用于表示请求的结果,如:

  1. 200 OK:请求成功
  2. 201 Created:请求已经被实现,而且有一个新的资源已经依据请求而创建
  3. 204 No Content:请求已经成功处理,但是没有返回任何内容
  4. 400 Bad Request:请求参数有误
  5. 401 Unauthorized:请求要求身份验证
  6. 403 Forbidden:服务器拒绝请求
  7. 404 Not Found:请求的资源不存在
  8. 500 Internal Server Error:服务器内部错误

其他:

有些人认为 GET 方法只能传输文本数据,实际上这也是一个误解。GET 方法和 POST 方法一样, 都可以传输任意类型的数据,只是请求参数的传递方式不同。

除了 GET 方法和 POST 方法,HTTP 协议还定义了其它一些方法,例如 PUT、DELETE、HEAD、 OPTIONS 等。这些方法的使用场景不同,可以根据具体的需求来选择使用。