http协议中,“get”和“post”的区别是什么?

陆仴

“我是哟哟吼说科技,专注于数据网络的回答,欢迎大家与我交流数据网络的问题”

HTTP(超文本传输协议)是互联网上最常用的一种网络协议,在客户端和服务器之间建立连接后,通过发送数据至特定的端口(默认为80)来完成http请求。

如题,http协议中GET和POST的区别是什么?

HTTP协议定义了客户端与服务器交互的四种方式,分别为GET、POST、PUT、DELETE,哟哟针对题主所说的GET和POST做简单介绍:

GET,用于获取信息,仅限于去获取并查询数据,不会更改服务器上的数据;

POST,同GET一样可以获取到数据,但POST可以向服务器发送修改请求,以达到修改的目的;

两者区别:

1、GET的参数是通过URL进行传送;而POST是放在request body当中;

2、GET相对不安全,数据直接暴露在URL中;而POST相对安全,可以对数据进行加密;

3、GET方式会将http报头和数据一并发送,服务器进行响应200 ok;而POST方式则是分两部分,第一步发送报头,服务器响应100 continue,再发送数据,服务器响应200 ok;

4、GET在URL传输的参数长度是有限的;而POST是没有限制的;


哟哟吼说科技

书面上可以参考规范说明书,比在回答里靠谱多了。

我说下大多数情况的实际应用:

get是通过URL网址来传递参数的,而URL是有限定长度的,比如有个几十KB的数据需要上传到服务器处理,无论你怎么用get都实现不了。

post就支持较大数据的上传,这是最明显的区别。

那有人说了,既然post比get功能多,那就都用post,不用get呗。在大部分web场合下,都是比较简单的请求,get比post效率高,一秒一次请求看不出来,一秒100次并发就差大了。

至于其他方面用的少,参考规范自行体会吧。


自由践行

有人回答get方式不改变服务器数据,这是不对的,get和post都是客户端和服务器的交互的方式之一,都可以改变服务器数据。

一般,get侧重从服务器上读取已有的数据,顺便可以改写服务器上的有关数据,如已读次数等,post侧重从本地提交上传信息到服务器上保存,和get方式不同之处,post方式提交的数据量大,如一篇文章,get方式就只能提交个字,所有的文件,如图片等上传服务器只能用post方式,get也做不到。


丁月光

都没说到点上。从HTTP报文分析,GET请求包含在HTTP头中,而POST请求则包含在数据体中。GET数据在URL中提交,可以被搜索引擎抓到,还能被浏览器缓存,用于数据查询能优化服务器性能。POST适合用来提交录入数据。


分享到:


相關文章: