HTTP 方法:GET 对比 POST


两�最常用的 HTTP 方法是:GET 和 POST。


什么是 HTTP ?

超文本传输�议(HTTP)的设计目的是��客户端与�务器之间的通信。

HTTP 的工作方�是客户端与�务器之间的请求-应答�议。

web �览器�能是客户端,而计算机上的网络应用程�也�能作为�务器端。

举例:客户端(�览器)��务器�交 HTTP 请求;�务器�客户端返回�应。�应包�关于请求的状�信�以��能被请求的内容。


两� HTTP 请求方法:GET 和 POST

在客户机和�务器之间进行请求-�应时,两�最常被用到的方法是:GET 和 POST。

  • GET - 从指定的资æº�请求数æ�®ã€‚
  • POST - å�‘指定的资æº�æ��交è¦�被处ç�†çš„æ•°æ�®ã€‚

GET �交�数一般显示在 URL 上,POST 通过表��交�会显示在 URL 上,POST 更具�蔽性:


GET 方法

请注�,查询字符串(�称/值对)是在 GET 请求的 URL 中��的:

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

有关 GET 请求的其他一些注释:

  • GET 请求å�¯è¢«ç¼“å­˜
  • GET 请求ä¿�留在æµ�览器历å�²è®°å½•中
  • GET 请求å�¯è¢«æ”¶è—�为书签
  • GET 请求ä¸�应在处ç�†æ•�感数æ�®æ—¶ä½¿ç”¨
  • GET 请求有长度é™�制
  • GET 请求å�ªåº”当用于å�–回数æ�®

POST 方法

请注�,查询字符串(�称/值对)是在 POST 请求的 HTTP 消�主体中��的:

POST /test/demo_form.php HTTP/1.1
Host: runoob.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 or multipart/form-data。为二进制数�使用多�编�。
历� �数�留在�览器历�中。 �数�会�存在�览器历�中。
对数�长度的�制 是的。当��数�时,GET 方法� URL 添加数�;URL 的长度是��制的(URL 的最大长度是 2048 个字符)。 无�制。
对数�类型的�制 ��许 ASCII 字符。 没有�制。也�许二进制数�。
安全性 与 POST 相比,GET 的安全性较差,因为所��的数�是 URL 的一部分。

在��密�或其他�感信�时���使用 GET �
POST 比 GET 更安全,因为�数�会被�存在�览器历�或 web �务器日志中。
��性 数�在 URL 中对所有人都是��的。 数��会显示在 URL 中。


其他 HTTP 请求方法

下�的表格列出了其他一些 HTTP 请求方法:

方法 �述
HEAD 与 GET 相�,但�返回 HTTP 报头,�返回文档主体。
PUT 上传指定的 URI 表示。
DELETE 删除指定资�。
OPTIONS 返回�务器支�的 HTTP 方法。
CONNECT 把请求连接转�到�明的 TCP/IP 通�。