post和get请求的区别

1.传送方式:get通过地址栏传输,post通过报文传输。

2.post请求无长度限制(至少是理论上的) ;get有长度限制,最长不超过2048字节(1024个汉字)

3.Get/post 请求报文上的区别

get 和post只是 HTTP 协议中两种请求方式(异曲同工),而 HTTP 协议是基于 TCP/IP 的应用层协议,无论 get还是post,用的都是同一个传输层协议,所以在传输上,没有区别。

不带参数时:基本没有区别

带参数时:get 方法的参数应该放在 url 中,post方法参数应该放在 body 中

4.提交URL方式带参时

<form action="s1?method=post" method="post">

Action中带参数时,如果用get方法提交,后台无法接收到这个参数;如果用post方法提交,后台就可以接收到这个参数。

若get需要传递method参数时,可以使用hidden隐藏域。

<form action="s1" method="get">

<input name='method' type='hidden' value='get'>

5.Get方式的提交需要用Request.QueryString来取得变量的值,而Post方式提交时,你必须通过Request.Form来访问提交的内容。

6.安全性问题

通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:
 ①登陆页面可以被浏览器缓存; 
 ②其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。 
建议 :在Form中,建议使用post方法。

并且,从传输的角度来说,他们都是不安全的,因为 HTTP 在网络上是明文传输的,只要在网络节点上捉包,就能完整地获取数据报文。要想安全传输,就只有加密,也就是 HTTPS(超文本传输安全协议http的安全传输)

7.get参数保存在浏览器,而post参数不会保存在浏览器

8.部分浏览器中,post 会将 header 和 body 分开发送,先发送 header,服务端返回 100 状态码再发送 body。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值