HTTP请求 - 请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。

HTTP1.0定义了三种请求方法: GET, POST和HEAD方法。

HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE和CONNECT方法。

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

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

  • GET - 从指定的资源请求数据;
  • POST - 向指定的资源提交要被处理的数据;

get请求方法

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

1
/test/demo_form.asp?name1=value1&name2=value2

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

  • GET 请求可被缓存
  • GET 请求保留在浏览器历史记录中
  • GET 请求可被收藏为书签
  • GET 请求不应在处理敏感数据时使用
  • GET 请求有长度限制
  • GET 请求只应当用于取回数据

post请求方法

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

1
2
3
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

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

  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST 不能被收藏为书签
  • POST 请求对数据长度没有要求

post和get的区别

GET POST
刷新 无影响。 数据会被重新提交。
书签 可收藏为书签。 不可收藏为书签。
缓存 能被缓存。 不能缓存。
传输 通过网址字符串。 通过二进制数据。
历史 参数保留在浏览器历史中。 参数不会保存在浏览器历史中。
长度 URL 的最大长度是 2048 个字符。 理论上无限制。
类型 只允许 ASCII 字符。 没有限制。也允许二进制数据。
安全性 较差,明文可见。 较好,参数不会被保存在浏览器历史或web服务器日志中。