📜  HTTP完整格式(1)

📅  最后修改于: 2023-12-03 14:42:01.364000             🧑  作者: Mango

HTTP完整格式

简介

HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的媒体协议。它是应用层协议,建立在TCP(Transmission Control Protocol)之上,常用于Web应用,可用于传输HTML、图片、视频等多种类型的数据。HTTP通常使用80端口。

HTTP功能强大,支持多种请求方法(GET、POST、PUT、DELETE等),支持多种数据格式(JSON、XML等),并且在可扩展性和互操作性方面表现良好。

在这篇文章中,我们将介绍HTTP的完整格式,包括请求报文、响应报文等。

请求报文格式

HTTP请求报文由三部分组成:请求行、请求头部和请求主体。

以下是请求报文的完整格式:

HTTP/1.1 请求方法 URL HTTP/协议版本
Host: 主机名
头部字段1: 头部字段1值
头部字段2: 头部字段2值
...

请求主体
  • HTTP/1.1:指明了HTTP的版本。该字段是必需的。
  • 请求方法:指定请求的类型,常用的有GET、POST、PUT、DELETE等。该字段是必需的。
  • URL:指明了请求的资源路径。该字段是必需的。
  • HTTP/协议版本:指定所使用的HTTP协议的版本,常用的有HTTP/1.0和HTTP/1.1。该字段是可选的。

请求头部由多个键值对组成,用冒号分隔。HTTP协议规定了一些常用的头部字段,例如:

  • Accept:指定客户端接受哪些媒体类型。
  • Content-Type:指定请求主体所使用的媒体类型。
  • User-Agent:指定客户端程序的类型。
  • Referer:指定请求的来源URL。

请求主体通常包含请求所需的数据,如GET请求通常没有请求主体。

以下是一个请求报文的例子:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36

以上请求报文表示客户端向服务器请求www.example.com域名下的/index.html资源,采用HTTP/1.1协议。

响应报文格式

HTTP响应报文由三部分组成:状态行、响应头部和响应主体。

以下是响应报文的完整格式:

HTTP/协议版本 状态码 状态短语
响应头部字段1: 响应头部字段1值
响应头部字段2: 响应头部字段2值
...

响应主体
  • HTTP/协议版本:与请求报文中的相同,指明了HTTP的版本。该字段是必需的。
  • 状态码:一个三位数的数字,表示服务器对请求的处理结果。HTTP协议定义了一系列状态码,如200表示成功,404表示未找到,500表示服务器内部错误等。该字段是必需的。
  • 状态短语:对状态码的简短描述。该字段是必需的。

响应头部包含多个键值对,用冒号分隔。HTTP协议也规定了一些常用的响应头部字段,例如:

  • Server:指定服务器程序的类型和版本号。
  • Content-Type:指定响应主体所使用的媒体类型。
  • Content-Length:指定响应主体的长度。
  • Last-Modified:指定资源的最后修改时间。

响应主体通常包含服务器返回的数据,如HTML页面、图片、视频等。

以下是一个响应报文的例子:

HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 1381

<!DOCTYPE html>
<html>
<head>
	<title>示例网页</title>
</head>
<body>
	<h1>Hello, World!</h1>
	<p>这是一个示例网页。</p>
</body>
</html>

以上响应报文表示服务器成功响应请求,返回类型为text/html,长度为1381字节的内容。

总结

HTTP是一个功能强大、使用广泛的应用层协议。我们学习了HTTP的完整格式,包括请求报文、响应报文等。了解HTTP的完整格式可以帮助我们更好地理解HTTP协议的工作原理,为编写Web应用提供基础。