浅谈HTTP的GET和POST请求

1 HTTP 协议

HTTP(HyperText Transfer Protocol),超文本传输协议。是万维网中一种网络协议,通常承载于TCP传输协议之上。也有承载于TLS和SSL协议之上的,这就是HTTPS了默认HTTP的端口号为80,HTTPS的端口号为443。

HTTP定义了四种与服务器数据交互的方法,分别是:GET,POST,PUT,DELETE.

GET,POST,PUT,DELETE就对应着对这个资源的 4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息(个人认为这是GET和POST的本质区别,也是协议设计者的本意,其它区别都是具体表现形式的差异)[2]

下面就只详解GET和POST请求吧

2.GET 方法

get:请求参数是作为一个key/value对的序列(查询字符串)附加到URL上的
查询字符串的长度受到web浏览器和web服务器的限制(如IE最多支持2048个字符),不适合传输大型数据集同时,它很不安全


对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)

3.POST 方法

post:请求参数是在http标题的一个不同部分(名为entitybody)传输的,这一部分用来传输表单信息,因此必须将Content-type设置为:application/x-www-form-urlencoded。post设计用来支持web窗体上的用户字段,其参数也是作为key/value对传输。


对于POST,一般浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据),而Firefox就只发送一次。


4.安全性

一般理解,POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修 改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-siterequest forgery(跨站请求伪造)攻击[4].




时间较为匆忙,提干精要的阅读了相关连接,引用其中的话做了小结。

如有错误之处,愿意交流的朋友留下您的见解,一起探讨。


相关连接

1    深入理解HTTP协议:www.blogjava.net/zjusuyong/articles/304788.html

2.   常见错误理解GET,POST :http://www.tuicool.com/articles/faAJNzR

3.   GET,POST 本质理解:http://blog.csdn.net/csj50/article/details/5687850

4.   跨站请求伪造:http://blog.csdn.net/myfuturein/article/details/8046899

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值