陆仴
“我是哟哟吼说科技,专注于数据网络的回答,欢迎大家与我交流数据网络的问题”
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适合用来提交录入数据。