您的位置:首页 > 理论基础 > 计算机网络

115.HTTP请求之GET与POST方法比较

2016-10-26 17:19 344 查看
两种最常用的 HTTP 方法是:GET 和 POST。


HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。而且GET和POST只是发送机制不同,
他们都可以对所有资源进行操作, 也就是说同一个请求, 既可以通过GET方式又可以通过POST方式来完成请求。


GET 方法

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


POST 方法

POST方法一般用来向目的服务器发出更新请求,并附有请求实体。POST被设计成用统一的方法实现下列功能:
  对现有资源的注释(Annotation of existing resources);  向电子公告栏、新闻组,邮件列表或类似讨论组发送消息;  提交数据块,如将表格(form)的结果提交给数据处理过程;  通过附加操作来扩展数据库。  也可用来上传文件。



其他 HTTP 请求方法

下面的表格列出了其他一些 HTTP 请求方法:
方法描述
HEAD与 GET 相同,但只返回 HTTP 报头,不返回文档主体。
PUT上传指定的 URI 表示。
DELETE删除指定资源。
OPTIONS返回服务器支持的 HTTP 方法。
CONNECT把请求连接转换到透明的 TCP/IP 通道。列表(字母排序)






比较 GET 与 POST

下面的表格比较了两种 HTTP 方法:GET 和 POST。
 GETPOST
后退按钮/刷新无害数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
书签可收藏为书签不可收藏为书签
缓存能被缓存不能缓存
编码类型application/x-www-form-urlencodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
历史参数保留在浏览器历史中。参数不会保存在浏览器历史中。
对数据长度的限制是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。无限制。
对数据类型的限制只允许 ASCII 字符。没有限制。也允许二进制数据。
安全性与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。

在发送密码或其他敏感信息时绝不要使用 GET !
POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
可见性数据在 URL 中对所有人都是可见的。数据不会显示在 URL 中。

主要区别  

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

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

参考资料: http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息