-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
面试官:说一下 GET 和 POST 的区别? #145
Comments
thanks |
666 |
nice!hxd! |
what a good summary!! |
nice |
美滴很 |
冲冲冲 |
这些答案,面试估计过不去啊 |
Jesus! |
强 |
”注意:这里只是约定,并不属于HTTP规范,“ 这句肯定对我来说就是捡到宝了/龇牙 |
tks~ |
厉害厉害 |
这里说的区别,也只是RestFul规约上的区别,当然我们已经默认这是一种固有的约定了。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
一、是什么
GET
和POST
,两者是HTTP
协议中发送请求的方法GET
GET
方法请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据POST
POST
方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用本质上都是
TCP
链接,并无差别但是由于
HTTP
的规定和浏览器/服务器的限制,导致他们在应用过程中会体现出一些区别二、区别
从
w3schools
得到的标准答案的区别如下:参数位置
貌似从上面看到
GET
与POST
请求区别非常大,但两者实质并没有区别无论
GET
还是POST
,用的都是同一个传输层协议,所以在传输上没有区别当不携带参数的时候,两者最大的区别为第一行方法名不同
当携带参数的时候,我们都知道
GET
请求是放在url
中,POST
则放在body
中GET
方法简约版报文是这样的POST
方法简约版报文是这样的注意:这里只是约定,并不属于
HTTP
规范,相反的,我们可以在POST
请求中url
中写入参数,或者GET
请求中的body
携带参数参数长度
HTTP
协议没有Body
和URL
的长度限制,对URL
限制的大多是浏览器和服务器的原因IE
对URL
长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持这里限制的是整个
URL
长度,而不仅仅是参数值的长度服务器处理长
URL
要消耗比较多的资源,为了性能和安全考虑,会给URL
长度加限制安全
POST
比GET
安全,因为数据在地址栏上不可见然而,从传输的角度来说,他们都是不安全的,因为
HTTP
在网络上是明文传输的,只要在网络节点上捉包,就能完整地获取数据报文只有使用
HTTPS
才能加密安全数据包
对于
GET
方式的请求,浏览器会把http header
和data
一并发送出去,服务器响应200(返回数据)对于
POST
,浏览器先发送header
,服务器响应100continue
,浏览器再发送data
,服务器响应200 ok并不是所有浏览器都会在
POST
中发送两次包,Firefox
就只发送一次参考文献
The text was updated successfully, but these errors were encountered: