简单讲讲:
- Get一般用于从服务器取数据,而且不改变原来的内容;
- Post一般用于向服务器传递数据,这需要改变服务器的内容。
- 从安全性上考虑,Get的安全性要稍微差点,因为它会把信息直接在地址栏显示出来。但如果对信息的安全性要求比较高的话,优先考虑使用Post。
- 综合,如果没有特殊需要,用Get,方便
下面详细讲讲~
HTTP最早被用来做浏览器与服务器之间交互HTML和表单的通讯协议;后来又被被广泛的扩充到接口格式的定义上。根据 HTTP 规范,GET 用于信息获取,而且应该是 安全的和 幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。
HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE ,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTP请求基本不产生什么动作,就意味着GET和HEAD的HTTP请求不会子啊服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改信息。
最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。
为什么get比比post更快
1.post请求包含更多的请求头
因为post需要在请求的body部分包含数据,所以会多了几个数据描述部分的首部字段(如: content-type),这其实是微乎其微的.
⒉post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据
post请求的过程:
(1)浏览器请求tcp连接((第一次握手)()服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)(4)服务器返回100 Continue响应
(5)浏览器发送数据
(6)服务器返回200 OK响应get请求的过程:
(1)浏览器请求tcp连接(第一次握手)(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送get请求头和数据((第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)(4)服务器返回200 Ok响应
3.get会将数据缓存起来,而post不会
面试是一般怎么回答get和post的区别
(1) post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
(2) post发送的数据更大(get有url长度限制)
(3) post能发送更多的数据类型(get只能发送AsCl字符)
(4) postt比get慢(其实差不了多少)
(5) post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据
标签:httpGet,浏览器,请求,get,区别,httpPost,服务器,post,GET From: https://www.cnblogs.com/ff2223/p/17641609.html