GET 请求和 POST 请求

HTTP 请求方法

Http 协议定义了很多与服务器交互的方法,最基本的有4种,分别是 GET,POST,PUT,DELETE。一个URL地址用于描述一个网络上的资源,而 HTTP 中的 GET,POST,PUT,DELETE 就对应着对这个资源的查,改,增,删4个操作。 最常见的就是GET和POST了。

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

GET 请求

GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive
//注意最后一行是空行

POST 请求

POST / HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

GET 和 POST 的区别

1、提交方式:GET提交的数据会在地址栏中显示出来,而POST提交的地址栏不会改变。

  • GET:请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以 ? 分割 URL 和传输数据,多个参数用 & 连接。如果数据是英文字母/数字,原样发送;如果是空格,转换为+;如果是中文/其他字符,则直接把字符串用BASE64加密。例 如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
  • POST:把提交的数据放置在是HTTP包的包体中。

2、传输数据的大小:GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制。

  • GET:GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
  • POST:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。

3、安全性:POST的安全性要比GET的安全性高。

  • 通过GET方式请求的数据将出现在URL上,可能会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据。在某种情况下,GET方式会带来严重的安全问题。而POST方式相对来说就可以避免这些问题。

4、get请求和post请求在服务器端的区别

  • 客户端使用 get 请求时,服务器端使用 Request.QueryString 来获取参数
  • 客户端使用post请求时,服务器端使用Request.Form 来获取参数

Get 请求和 POST 请求的选择

GET 一般用于查询资源信息,而 POST 一般用于更新资源信息。

若符合下列任一情况,则用POST方法:

  • 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
  • 若使用GET方法,则表单上收集的数据可能让URL过长。
  • 要传送的数据不是采用7位的ASCII编码。

若符合下列任一情况,则用GET方法:

  • 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
  • 请求结果无持续性的副作用。
  • 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值