Http中的get与post请求的区别

get与post最直观的区别

数据存放位置

1.get是把请求的数据放到url最后

2.post是把数据放在header头中
安全性

1.get把数据显性暴露在外面,不安全但执行效率却比post 方法好

2.post稍微隐藏下,不会被大型爬虫直接解包,相对安全但也不安全

表单的提交默认是用get,在进行文件上传时只能用post而不能是get

数据量

1.get传送数据量较小,get限制1083(其实真正限制的是url的长度,从通信协议角度讲,数据量本身没有限制,而且长度限制只存在于IE浏览器下,谷歌火狐不存在这个问题)

2.post传送的数据量较大,一般默认为不受限制

其实GET与POST本质没有区别,它们是HTTP协议中的两种发送请求的方法。

HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。HTTP的底层是TCP/IP。所以get和post的底层也是TCP/IP,但是由于HTTP的规定和浏览器/服务器的限制,导致它们在应用过程中体现出一些不同。

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

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

简单的说:

GET产生一个TCP数据包;POST产生两个TCP数据包。(据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。)

Http的请求方式,你了解几种呢?

1. get

2. head 

        get的简化版,服务器不会返回请求的实体数据,只会传回响应头。可以用在很多并不真正需要资源的场合,避免传输 body 数据的浪费。如要检查一个文件是否存在,只要发个 HEAD 请求就可以,没必要用 GET 把整个文件都取下来。

3. post

4. put

5. delete

可以用增删改查来比喻:

     insert:post

    delete:delete

    update:put

    select:get

希望对看到的小伙伴有帮助,如有不同意见,望不吝赐教。。。

发布了91 篇原创文章 · 获赞 1 · 访问量 3209

猜你喜欢

转载自blog.csdn.net/duan196_118/article/details/104155755