Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

HTTP 请求方法


什么是 HTTP?

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

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

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


HTTP 方法

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS
  • CONNECT
  • TRACE

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


GET 方法

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

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

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

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

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

POST 方法

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

与 POST 一起发送到服务器的数据存储在 HTTP 请求的请求正文中

POST /test/demo_form.php HTTP/1.1
Host: w3schools.com

name1=value1&name2=value2

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

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

比较 GET 与 POST

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

  GET POST
后退按钮/重新加载 无害 数据将被重新提交(浏览器应提醒用户数据即将被重新提交)
添加书签 可以添加书签 不能添加书签
缓存 可以缓存 不缓存
编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。对二进制数据使用 multipart 编码
历史记录 参数保留在浏览器历史记录中 参数不会保存在浏览器历史记录中
对数据长度的限制 是,发送数据时,GET 方法会将数据添加到 URL 中;URL 的长度是有限制的(最大 URL 长度为 2048 个字符) 无限制
对数据类型的限制 仅允许 ASCII 字符 无限制。二进制数据也允许
安全性 GET 比 POST 不安全,因为发送的数据是 URL 的一部分

发送密码或其他敏感信息时,切勿使用 GET!
POST 比 GET 稍微安全一些,因为参数不会存储在浏览器历史记录中或 Web 服务器日志中
可见性 数据在 URL 中对每个人可见 数据不会显示在 URL 中


PUT 方法

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

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


HEAD 方法

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

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

HEAD 请求对于在实际执行 GET 请求之前检查 GET 请求将返回什么很有用 - HEAD 请求可以读取 Content-Length 标头以检查文件的大小,而无需实际下载文件。


DELETE 方法

DELETE 方法删除指定的资源。


PATCH 方法

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


OPTIONS 方法

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


CONNECT 方法

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


TRACE 方法

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


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.