当前位置: 首页 > 教程 > HTTP协议 >

HTTP-请求方法

精华
小牛编辑
142浏览
2023-03-14

1 HTTP请求方法

对于HTTP/1.1协议,定义了一组通用的HTTP请求方法。可以根据要求扩展这些方法。这些方法的名称区分大小写,必须使用大写字母。

请求方法 说明
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 
PUT 从客户端向服务器传送的数据取代指定的文档的内容。 
DELETE 请求服务器删除指定的页面。 
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 
OPTIONS 允许客户端查看服务器的性能。 

1.1 GET方法的示例

此方法用于使用请求的URL部分中的指定参数从Web服务器检索数据。这是用于文档检索的主要方法。使用GET方法获取index.htm的方法如下:

GET /index.html HTTP/1.1  
User-Agent: Mozilla/69.0 (compatible; MSIE5.01; Windows 10)  
Host: www.xnip.cn  
Accept-Language: en-us  
Accept-Encoding: gzip, deflate  
Connection: Keep-Alive  

以下是服务器对以上GET请求的响应:

HTTP/1.1 200 OK  
Date: Wed, 4 Dec 2019 5:15:40 GMT  
Server: Apache/2.4. 41 (Win32)  
Last-Modified: Mon, 2 Dec 2019 15:40:30 GMT  
ETag: "34aa387-d-1568eb00"  
Vary: Authorization,Accept  
Accept-Ranges: bytes  
Content-Length: 55  
Content-Type: text/html  
Connection: Closed  

<html>  
<body>  
<h1>First Program</h1>  
</body>  
</html>  

1.2 HEAD方法的示例

此方法与GET方法相同。但是在HEAD方法中,服务器使用响应行和响应头进行回复,而没有实体主体。使用HEAD方法来获取有关index.htm的方法如下:

HEAD /index.html HTTP/1.1  
User-Agent: Mozilla/69.0 (compatible; MSIE5.01; Windows 10)  
Host: www.xnip.cn  
Accept-Language: en-us  
Accept-Encoding: gzip, deflate  
Connection: Keep-Alive  

以下是针对上述HEAD请求的服务器响应:

HTTP/1.1 200 OK  
Date: Wed, 4 Dec 2019 5:15:40 GMT  
Server: Apache/2.4. 41 (Win32)  
Last-Modified: Mon, 2 Dec 2019 15:40:30 GMT  
ETag: "34aa387-d-1568eb00"  
Vary: Authorization,Accept  
Accept-Ranges: bytes  
Content-Length: 55  
Content-Type: text/html  
Connection: Closed 

这个示例中,我们可以看到服务器在请求之后没有发送任何数据。

1.3 POST方法的示例

此方法用于将一些数据发送到服务器,例如,更新服务器的文件等。使用POST方法将表单数据发送到服务器的方法如下:

POST /cgi-bin/process.cgi HTTP/1.1  
User-Agent: Mozilla/69.0 (compatible; MSIE5.01; Windows 10)  
Host: www.xnip.cn  
Content-Type: text/xml; charset=utf-5  
Content-Length: 55  
Accept-Language: en-us  
Accept-Encoding: gzip, deflate  
Connection: Keep-Alive  

<"xml version="1.0" encoding="utf-5">  
<string xmlns=" https://www.xnip.cn/">string</string>  

服务器端process.cgi的脚本处理传递的数据并发送如下响应:

HTTP/1.1 200 OK  
Date: Wed, 4 Dec 2019 5:15:40 GMT  
Server: Apache/2.4. 41 (Win32)  
Last-Modified: Mon, 2 Dec 2019 15:40:30 GMT  
ETag: "34aa387-d-1568eb00"  
Vary: Authorization,Accept  
Accept-Ranges: bytes  
Content-Length: 55  
Content-Type: text/html  
Connection: Closed  

<html>  
<body>  
<h1> Request Processed Successfully</h1>  
</body>  
</html> 

1.4 PUT方法的示例

此方法请求服务器在给定URL指定的位置存储包含的实体主体。以下示例请求服务器将给定的实体正文保存在服务器根目录中的index.html中。

PUT /index.html HTTP/1.1  
User-Agent: Mozilla/69.0 (compatible; MSIE5.01; Windows 10)  
Host: www.xnip.cn  
Accept-Language: en-us  
Connection: Keep-Alive  
Content-type: text/html  
Content-Length: 150  

<html>  
<body>  
<h1> First Program</h1>  
</body>  
</html>  

在index.html文件中,服务器将存储给定的实体,并将以下响应发送回客户端:

HTTP/1.1 201 Created  
Date: Wed, 4 Dec 2019 5:15:40 GMT  
Server: Apache/2.4. 41 (Win32)  
Content-type: text/html  
Content-length: 30  
Connection: Closed  

<html>  
<body>  
<h1> The file was created.</h1>  
</body>  
</html>  

1.5 DELETE方法的示例

此方法请求服务器在给定URL指定的位置删除文件。下面的示例请求服务器删除服务器根目录下的index.html文件:

DELETE /index.html HTTP/1.1  
User-Agent: Mozilla/69.0 (compatible; MSIE5.01; Windows 10)  
Host: www.xnip.cn  
Accept-Language: en-us  
Connection: Keep-Alive  

在上面的示例之后,服务器将删除index.html文件,并将响应发送回客户端,如下所示:

HTTP/1.1 200 OK  
Date: Wed, 4 Dec 2019 5:15:40 GMT  
Server: Apache/2.4. 41 (Win32)  
Content-type: text/html  
Content-length: 30  
Connection: Closed  

<html>  
<body>  
<h1>URL deleted</h1>  
</body>  
</html>  

1.6 CONNECT方法的示例

客户端使用此方法。它通过HTTP建立到Web服务器的网络连接。以下示例请求与主机www.xnip.cn上运行的Web服务器的连接:

CONNECT www.xnip.cn HTTP/1.1  
User-Agent: Mozilla/69.0 (compatible; MSIE5.01; Windows 10)  

下面的示例展示与服务器建立连接,并将响应发送回客户端:

HTTP/1.1 200 Connection established  
Date: Wed, 4 Dec 2019 5:15:40 GMT  
Server: Apache/2.4. 41 (Win32)  

1.7 OPTIONS方法的示例

客户端使用此方法。它用于查找Web服务器支持的HTTP方法和其他选项。下面的示例请求在www.xnip.cn上运行的Web服务器支持的方法列表:

OPTIONS * HTTP/1.1  
User-Agent: Mozilla/69.0 (compatible; MSIE5.01; Windows 10)  

在下面的示例中,服务器将基于服务器的当前配置发送信息:

HTTP/1.1 200 OK  
Date: Wed, 4 Dec 2019 5:15:40 GMT  
Server: Apache/2.4. 41 (Win32)  
Allow: GET,HEAD,POST,OPTIONS,TRACE  
Content-Type: httpd/unix-directory