超文本传输协议 (HTTP) 旨在实现客户端和服务器之间的通信。
HTTP 作为客户端和服务器之间的请求-响应协议。
示例:客户端(浏览器)向服务器发送HTTP请求;然后服务器返回响应给客户端。响应包含有关请求的状态信息,还可能包含请求的内容。
两种最常见的 HTTP 方法是:GET 和 POST。
GET 用于从指定资源请求数据。
请注意,查询字符串(名称/值对)在 GET 请求的 URL 中发送:
/test/demo_form.html?name1=value1&name2=value2
关于 GET 请求的一些注意事项:
POST 用于将数据发送到服务器以创建/更新资源。
通过POST发送到服务器的数据存储在HTTP请求的请求体中:
POST /test/demo_form.html HTTP/1.1
Host: 91xjr.com
name1=value1&name2=value2
关于 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 用于将数据发送到服务器以创建/更新资源。
POST 和 PUT 之间的区别在于 PUT 请求是幂等的。也就是说,多次调用相同的 PUT 请求将始终产生相同的结果。相反,重复调用 POST 请求会产生多次创建相同资源的副作用。
HEAD 几乎与 GET 相同,但没有响应正文。
换句话说,如果 GET /users 返回用户列表,那么 HEAD /users 将发出相同的请求,但不会返回用户列表。
HEAD 请求对于在实际发出 GET 请求之前检查 GET 请求将返回的内容非常有用 - HEAD 请求可以读取 Content-Length 标头来检查文件的大小,而无需实际下载文件。
DELETE 方法删除指定的资源。
PATCH 方法用于对资源应用部分修改。
OPTIONS 方法描述目标资源的通信选项。
CONNECT 方法用于启动与所请求资源的双向通信(隧道)。
TRACE 方法用于执行消息环回测试,测试目标资源的路径(对于调试目的很有用)。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!