永发信息网

http请求中get和post请求的区别

答案:2  悬赏:10  手机版
解决时间 2021-01-27 22:48
http请求中get和post请求的区别
最佳答案
一、原理区别
一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。
HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。不会产生动作意味着GET和HEAD的HTTP请求不会在服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改信息。
根据HTTP规范,POST可能会修改服务器上的资源的请求。比如CSDN的博客,用户提交一篇文章或者一个读者提交评论是通过POST请求来实现的,因为再提交文章或者评论提交后资源(即某个页面)不同了,或者说资源被修改了,这些便是“不安全方法”。


二、表现形式区别
搞清楚了两者的原理区别后,我们来看一下在实际应用中的区别。
首先,我们先看一下HTTP请求的格式:
<method> <request-URL> <version>  
<headers>  
<entity-body>  
<method> <request-URL> <version>

<headers>


<entity-body>




在HTTP请求中,奇异行必须是一个请求行,包括请求方法,请求URL,报文所用HTTP版本信息。紧接着是一个herders小节,可以有零个或一个首部,用来说明服务器要使用的附加信息。在首部之后就是一个空行,最后就是报文实体的主体部分,包含一个由任意数据组成的数据块。但是并不是所有的报文都包含实体的主体部分。
GET请求实例:

GET http://weibo.com/signup/signup.php?inviteCode=2388493434  
Host: weibo.com  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,**;q=0.8

POST请求实例:

POST /inventory-check.cgi HTTP/1.1  
Host: www.joes-hardware.com  
Content-Type: text/plain  
Content-length: 18  

item=bandsaw 2647  
POST /inventory-check.cgi HTTP/1.1

Host: www.joes-hardware.com

Content-Type: text/plain

Content-length: 18


item=bandsaw 2647


接下来看看两种请求方式的区别:
1、GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。
POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。
因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。

2、传输数据的大小
在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。
对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。

3、安全性
POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET请求提交的数据还可能会造成Cross-site request frogery攻击

4、HTTP中的GET,POST,SOAP协议都是在HTTP上运行的

三、HTTP响应
HTTP响应报文的格式


<version> <status> <reason-phrase>  
<headers>  

<entity-body>  
<version> <status> <reason-phrase>

<headers>


<entity-body>



status,状态码描述了请求过程中发生的情况
reson-phrase 是数字状态码的可读版本
常见的状态码以及含义如下:
200 OK 服务器成功处理请求
301/302 Moved Permanently(重定向)请求的URL已移走。响应报文中应该包含一个Location URL,说明资源现在所处的位置
304 Not Modified(未修改) 客户的缓存资源是最新的,要客户端使用缓存内容
404 Not Found 未找到资源
501 Internal Server Error 服务器遇到错误,使其无法对请求提供服务
HTTP响应示例
HTTP/1.1 200 OK
[plain] view plain copy print?


Content-type: text/plain  
Content-length: 12  

Hello World!  
Content-type: text/plain

Content-length: 12


Hello World!
全部回答
GET获取,POST提交!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
古塘村地址有知道的么?有点事想过去
天狼网咖地址在什么地方,想过去办事
膑骨的意思是什么啊?知道的请说下!
绣球换了花盆叶子慢慢变黄了怎么回事
dxracer电脑椅宝鸡市哪里有卖的
刀墨的意思是什么啊?知道的请说下!
语法填空求解答
上海市宝山区吴淞街道淞兴西路附近的银行
青帘村怎么去啊,我要去那办事
网络情缘网吧怎么去啊,我要去那办事
还可以跟还不错是一个意思吗?
石鲫的意思是什么啊?知道的请说下!
3D网络会所地址有知道的么?有点事想过去
泡椒田鸡怎么煮出酸辣味
中国银行卡开户了,但从来没用过,有什么后果
推荐资讯
多玩cooldowns default怎么关
乳麋的意思是什么啊?知道的请说下!
有个老相机。佳能S21S,换上新电池。不到二十
火车卧铺是从几号车厢开始的?
宝宝不配合吃药,可以把药掺在椰汁里面一起喝
co2气体保护焊机品牌有那些?
广州站动车和普通列车进站口是不是同一个?
横江村民委员会地址有知道的么?有点事想过去
签订工伤事故补偿协议需要什么手续
车损评估谁说了算
一对夫妇开了一个火锅店,夫妻俩既当店主又当
雷娜钢琴艺术培训地址好找么,我有些事要过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?