基本概念:
get请求:请求指定的页面信息,并返回实体主体。
post请求:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
区别:
- 本质上没有区别,都是TCP链接。
- GET是不安全的,因为在传输过程,数据被放在请求的URL中;POST的所有操作对用户来说都是不可见的,所以相对GET来说是安全的。
- GET传送的数据量较小,这主要是因为受URL长度限制;POST传送的数据量较大,一般被默认为不受限制。
使用场景:
若符合下列任一情况,则用GET方法:
- 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
- 请求结果无持续性的副作用。
- 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。
若符合下列任一情况,则用POST方法:
- 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
- 若使用GET方法,则表单上收集的数据可能让URL过长。
- 要传送的数据不是采用7位的ASCII编码。
简要概括:
GET不安全,多用于查询数据或请求的数据(没有安全性要求的)很少的情况。
POST相对安全,多用于请求的数据是保密的,比如登录时需要提交的用户名密码等,或者是请求的数据太多(比如提交表单等),超过了url的长度限制的情况。
其实,严格上来说,两者都不安全,比如提交的密码都是要加密之后才传到服务器的,只是POST相比于GET来说安全而已。