HTTP请求最经常使用的三个方法:
(1)Get方法. 取回请求URL标志的不论什么信息,在浏览器的地址栏中输入网址的方式訪问网页时,浏览器採用GET方法向server获取资源。
(2)Post方法.为请求报文准备数据,即要求被请求server接受附在请求消息后面的数据,经常使用于提交表单。
(3)Head方法. 类GET方法,不响应页面Body部分,用于获取资源的基本信息,即检查链接的可訪问性及资源是否改动。
其它方法:
PUT 请求server存储一个资源。并用Request-URI作为其标识
DELETE 请求server删除Request-URI所标识的资源
TRACE 请求server回送收到的请求信息,主要用于測试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询server的性能,或者查询与资源相关的选项和需求
get方法的问题:通过get提交的数据。将会出如今URL上。
假设登录页面能够被浏览器缓存。那么别人能够从浏览器的历史记录中读取到客户的账号和password。
get传送的数据量较小不能大于2KB。
Post方法的问题:Post方法须要server接收数据,对于server可能是不安全的。
运行效率比較低
建议:
1、get方式的安全性较Post方式要差些,包括机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式。而在做数据加入、改动或删除时。建议用Post方式。
问题:为什么百度搜索使用Get而不适用Post?
能够看一下http协议的内容 http请求主要有三种方式 get,head,post ,而ie发起一个请求一般包括,消息头和消息体。 假设请求的方式是get或者head方式,那么ie仅仅发送消息头到server, 假设是post请求,那么消息体(网页表单内容)和消息头都将传送到server,这样数据量就比其他两种方式的大一些 那么,按照上面所说。get方式请求,速度更快,可是,因为url是暴露在了用户面前。可能导致sql注入等非法攻击, 用post方式提交,速度会慢一些。
可是因为url是隐藏在了表单中,所以安全性会好一点。这就是为什么。一般登录页面都用post提交而不用get提交
从用户体验来看:假设用post方法搜索,百度的地址栏就没变化。而用get。地址栏则变成了一串网址。对于用户而言,有的时候确实是需要复制某一页面的搜索网址。这个时候就必需要用get方式。 并且post方式既然依然存在,必定还是有优点的。这个可能就是全然从技术角度分析的,比方稳定等。