Skip to content
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的区别 #67

Open
LuckyWinty opened this issue Jul 2, 2020 · 9 comments
Open

GET和POST的区别 #67

LuckyWinty opened this issue Jul 2, 2020 · 9 comments
Labels

Comments

@LuckyWinty
Copy link
Owner

No description provided.

@LuckyWinty LuckyWinty added the http label Jul 2, 2020
@LuckyWinty
Copy link
Owner Author

区别一

GET重点从服务器上获取资源,POST重点向服务器发送数据.

区别二

get传输数据是通过URL请求,置于URL后,并用”?”连接,多个请求数据间用”&”连接.post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;

区别三

Get传输的数据量小,因为受URL长度限制,但效率较高;

Post可以传输大量数据,所以上传文件时只能用Post方式;

区别四

get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;

post较get安全性较高;

区别五

get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。

post支持标准字符集,可以正确传递中文字符。

@zhiqiang77
Copy link

good 吧

@blazer233
Copy link

1、从缓存的角度,GET 请求会被浏览器主动缓存下来,留下历史记录,而 POST 默认不会。
2、从编码的角度,GET 只能进行 URL 编码,只能接收 ASCII 字符(encodeURI()编码),而 POST 没有限制。
3、从参数的角度,GET 一般放在 URL 中,因此不安全,POST 放在请求体中,更适合传输敏感信息。
4、从TCP的角度,GET 请求会把请求报文一次性发出去,而 POST 会分为两个 TCP 数据包,
   首先发 header 部分,如果服务器响应 100(continue), 然后发 body 部分。

@JaykeyGuo
Copy link

1、从缓存的角度,GET 请求会被浏览器主动缓存下来,留下历史记录,而 POST 默认不会。
2、从编码的角度,GET 只能进行 URL 编码,只能接收 ASCII 字符(encodeURI()编码),而 POST 没有限制。
3、从参数的角度,GET 一般放在 URL 中,因此不安全,POST 放在请求体中,更适合传输敏感信息。
4、从TCP的角度,GET 请求会把请求报文一次性发出去,而 POST 会分为两个 TCP 数据包,
   首先发 header 部分,如果服务器响应 100(continue), 然后发 body 部分。

第四点就很酷

@haishengXie0712
Copy link

1、从缓存的角度,GET 请求会被浏览器主动缓存下来,留下历史记录,而 POST 默认不会。
2、从编码的角度,GET 只能进行 URL 编码,只能接收 ASCII 字符(encodeURI()编码),而 POST 没有限制。
3、从参数的角度,GET 一般放在 URL 中,因此不安全,POST 放在请求体中,更适合传输敏感信息。
4、从TCP的角度,GET 请求会把请求报文一次性发出去,而 POST 会分为两个 TCP 数据包,
   首先发 header 部分,如果服务器响应 100(continue), 然后发 body 部分。

@blazer233
第四点是不是要看具体的场景呢?
我是用谷歌浏览器发送请求,使用 wireshark 抓包也是只发送一个 TCP.

@zhiqiang77
Copy link

zhiqiang77 commented Aug 31, 2020 via email

@NijatInHIT
Copy link

哪里说 请求会被浏览器主动缓存下来
GET requests can be cached
GET requests remain in the browser history
GET requests can be bookmarked
GET requests should never be used when dealing with sensitive data
GET requests have length restrictions
GET requests are only used to request data (not modify)
谁帮我把 主动cache翻译出来

@zustyejunjie
Copy link

你们说get不安全是因为参数在url后面,post在请求体里面,但是F12一下不是也都能看到吗

@wangdaoo
Copy link

wangdaoo commented May 1, 2021

1、从缓存的角度,GET 请求会被浏览器主动缓存下来,留下历史记录,而 POST 默认不会。
2、从编码的角度,GET 只能进行 URL 编码,只能接收 ASCII 字符(encodeURI()编码),而 POST 没有限制。
3、从参数的角度,GET 一般放在 URL 中,因此不安全,POST 放在请求体中,更适合传输敏感信息。
4、从TCP的角度,GET 请求会把请求报文一次性发出去,而 POST 会分为两个 TCP 数据包,
   首先发 header 部分,如果服务器响应 100(continue), 然后发 body 部分。

@blazer233
第四点是不是要看具体的场景呢?
我是用谷歌浏览器发送请求,使用 wireshark 抓包也是只发送一个 TCP.

这个具体场景怎么说呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants