📜  HTTP教程(1)

📅  最后修改于: 2023-12-03 15:31:20.735000             🧑  作者: Mango

HTTP教程

HTTP(HyperText Transfer Protocol)是用于从万维网服务器传输超文本到本地浏览器的传输协议。HTTP是一种无状态协议,意味着服务器不会记录任何访问者的信息。此外,HTTP是一种应用层协议,它依赖于传输协议(通常是TCP),以在网络上传输数据。

HTTP请求和响应

HTTP由请求和响应组成。

HTTP请求

当用户在浏览器中输入URL时,浏览器会发送一个HTTP请求到服务器,该请求由以下部分组成:

  • 请求行:包括请求方法(例如GET或POST),请求URL和协议版本(例如HTTP/1.1)。
  • 请求头:由多个请求头组成(例如Accept,User-Agent等)。
  • 请求正文:可选的请求正文,包含用户提交的数据。

以下是HTTP请求的示例代码:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP响应

当服务器接收到一个HTTP请求时,它会返回一个HTTP响应,该响应由以下部分组成:

  • 状态行:包括协议版本(例如HTTP/1.1),状态码和状态消息(例如200 OK)。
  • 响应头:由多个响应头组成(例如Content-Type,Content-Length等)。
  • 响应正文:响应数据(例如HTML页面,JSON数据等)。

以下是HTTP响应的示例代码:

HTTP/1.1 200 OK
Date: Wed, 02 Sep 2020 07:06:13 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 02 Sep 2020 07:05:22 GMT
ETag: "10000000565a5-2c-3e94e03b29080"
Content-Length: 44
Content-Type: text/html
Connection: Closed

<html><body><h1>Hello, World!</h1></body></html>
HTTP方法

HTTP定义了不同的方法,用于对服务器进行请求。

GET方法

GET是HTTP中最常见的方法之一。它用于请求指定URL的内容。响应包含请求URL指向的资源的实际内容。GET方法没有请求正文。

以下是GET方法的示例代码:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
POST方法

POST方法用于向指定URL提交实体,通常是表单数据。服务器处理请求后,可能会修改已存在的内容或创建新的资源。

以下是POST方法的示例代码:

POST /login HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

username=user&password=pass
HTTP状态码

HTTP状态码用于表示客户端请求的处理结果。

以下是一些常见的HTTP状态码:

  • 200 OK:表示请求成功,服务器已成功处理请求。
  • 301 Moved Permanently:表示请求的URL已经移动到新的URL。
  • 400 Bad Request:表示请求未能被服务器接受,通常是由于错误的请求语法。
  • 404 Not Found:表示服务器未找到请求的资源。
  • 500 Internal Server Error:表示服务器遇到错误,无法完成请求。
总结

HTTP是一种应用层协议,用于将超文本从服务器传输到本地浏览器。HTTP由请求和响应组成,请求由请求行,请求头和请求正文组成,响应由状态行,响应头和响应正文组成。HTTP定义了不同的方法,其中GET和POST方法是最常见的方法。HTTP状态码表示客户端请求的处理结果,200 OK表示请求成功,404 Not Found表示服务器未找到请求的资源,500 Internal Server Error表示服务器遇到错误。