HTTP 方法


什么是 HTTP?

超文本传输​​协议 (HTTP) 旨在实现客户端和服务器之间的通信。

HTTP 作为客户端和服务器之间的请求-响应协议。

示例:客户端(浏览器)向服务器发送HTTP请求;然后服务器返回响应给客户端。响应包含有关请求的状态信息,还可能包含请求的内容。


HTTP 方法

  • 得到
  • 邮政
  • 删除
  • 修补
  • 选项
  • 连接
  • 痕迹

两种最常见的 HTTP 方法是:GET 和 POST。


获取方法

GET 用于从指定资源请求数据。

请注意,查询字符串(名称/值对)在 GET 请求的 URL 中发送:

/test/demo_form.html?name1=value1&name2=value2

关于 GET 请求的一些注意事项:

  • GET请求可以被缓存
  • GET 请求保留在浏览器历史记录中
  • 可以为 GET 请求添加书签
  • 处理敏感数据时切勿使用 GET 请求
  • GET 请求有长度限制
  • GET请求仅用于请求数据(不修改)

POST 方法

POST 用于将数据发送到服务器以创建/更新资源。

通过POST发送到服务器的数据存储在HTTP请求的请求体中:

POST /test/demo_form.html HTTP/1.1
Host: 91xjr.com

name1=value1&name2=value2

关于 POST 请求的一些注意事项:

  • POST 请求永远不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST 请求无法添加书签
  • POST请求对数据长度没有限制

比较 GET 与 POST

下表比较了两种 HTTP 方法:GET 和 POST。

  GET POST
BACK button/Reload Harmless Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted)
Bookmarked Can be bookmarked Cannot be bookmarked
Cached Can be cached Not cached
Encoding type application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data
History Parameters remain in browser history Parameters are not saved in browser history
Restrictions on data length Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) No restrictions
Restrictions on data type Only ASCII characters allowed No restrictions. Binary data is also allowed
Security GET is less secure compared to POST because data sent is part of the URL

Never use GET when sending passwords or other sensitive information!
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs
Visibility Data is visible to everyone in the URL Data is not displayed in the URL


PUT方法

PUT 用于将数据发送到服务器以创建/更新资源。

POST 和 PUT 之间的区别在于 PUT 请求是幂等的。也就是说,多次调用相同的 PUT 请求将始终产生相同的结果。相反,重复调用 POST 请求会产生多次创建相同资源的副作用。


头部方法

HEAD 几乎与 GET 相同,但没有响应正文。

换句话说,如果 GET /users 返回用户列表,那么 HEAD /users 将发出相同的请求,但不会返回用户列表。

HEAD 请求对于在实际发出 GET 请求之前检查 GET 请求将返回的内容非常有用 - HEAD 请求可以读取 Content-Length 标头来检查文件的大小,而无需实际下载文件。


删除方法

DELETE 方法删除指定的资源。


补丁方法

PATCH 方法用于对资源应用部分修改。


选项方法

OPTIONS 方法描述目标资源的通信选项。


连接方法

CONNECT 方法用于启动与所请求资源的双向通信(隧道)。


追踪方法

TRACE 方法用于执行消息环回测试,测试目标资源的路径(对于调试目的很有用)。