#get和post特点
get请求:请求参数在请求地址后面,提交的数据量较小,安全性较差,不建议用来提交敏感信息(地址栏中会显示,并且有可能被保存请求地址)。
-
功能:GET 方法用于获取由 Request-URI 所标识的资源的信息
-
默认方法:
GET方法是默认的HTTP请求方法
,例如当我们通过在浏览器的地址栏中直接输入网址的方式去访问网页的时候,浏览器采用的就是 GET 方法向服务器获取资源。 -
使用GET方法来提交表单数据存在的问题?
- GET方法提交的表单数据只经过了
简单的编码,存在着安全隐患
。 - 提交的
数据量不能太
,这是因为浏览器对URL的长度有限制,而提交的数据是作为URL请求的一部分
。 - 该方法的
响应是可缓存的
- GET方法提交的表单数据只经过了
-
请注意,
查询字符串
(名称/值对)是在 GET 请求的 URL 中发送的 -
GET 请求
可被缓存
:chrome下和firefox下如果检测到get请求的是静态资源,则会缓存
,如果是数据,则不缓存
,但是IE这个傻X啥都会缓存起来 -
GET 请求保留在浏览器历史记录中
-
GET 请求可被收藏为书签
-
GET 请求
不应在处理敏感数据时使用
-
GET
请求有长度限制
,大多数浏览器通常都会限制url长度在2K个字节
-
GET 请求
只应当用于取回数据
-
只接受
ASCII字符
的参数的数据类型 -
get效率高
post请求:请求参数放在请求体中提交,提高的数据量大小没有限制,敏感信息相对安全。
功能:GET方法的一个替代方法,它主要是向Web服务器提交表单数据
,尤其是大批量的数据
,克服了GET方法中的信息无法保密
和数据量太小
的缺点。该方法的响应是不可缓存的,除非响应里有合适的Cache-Control或者Expires头域。
- 功能:GET方法的一个替代方法,它
主要是向Web服务器提交表单数据
,尤其是大批量的数据
,克服了GET方法中的信息无法保密
和数据量太小
的缺点。该方法的响应是不可缓存的,除非响应里有合适的Cache-Control或者Expires头域。 - 查询字符串(名称/值对)是在 POST 请求的
HTTP 消息主体
中发送的 - POST 请求不会被缓存
- POST 请求不会保留在浏览器历史记录中
- POST 不能被收藏为书签
- POST 请求
对数据长度没有要求
- POST
支持多种编码方式
- post请求包含更多的请求头
- post不能进行管道化传输
# get 请求过程和post 请求过程
get:
- 浏览器请求tcp连接(第一次握手)
- 服务器答应进行tcp连接(第二次握手)
- 浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时
进行第一次数据发送
) - 服务器返回200响应成功
post:
- 浏览器请求tcp连接(第一次握手)
- 服务器答应进行tcp连接(第二次握手)
- 浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时
进行第一次数据发送
) - 服务器返回100 continue响应
- 浏览器开始发送数据
- 服务器返回200响应成功
#两者区别
GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
1、GET参数通过URL传递,POST放在Request body中。
2、GET请求会被浏览器主动cache,而POST不会,除非手动设置。
3、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
4、GET请求只能进行url编码,而POST支持多种编码方式。
5、POST请求的安全性比GET请求的安全性高,因为GET请求的参数是不加密,明文传输的,且会直接显示到浏览器的浏览框上;POST请求的数据则是可加密的,也不会显示到浏览器的浏览框上。
6、GET请求中有非 ASCII 字符,会在请求之前进行转码,POST不用,因为POST在Request body中,通过 MIME,也就可以传输非 ASCII 字符。
7、并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
#为什么get比post效率高
最重要原因: post在真正接受数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据。
#其他请求方法
1. HEAD
HEAD与GET方法一样,都是向服务器请求资源,但是不会返回响应体。这样,我们可以不传输全部内容的情况下,就可以获取服务器的响应头信息。常用于客户端查看服务器的性能。
2. PUT
若请求的URI是已经存在的资源,则put请求所附属的实体应被当做修改服务器中的资源,成功的话返回200或204。若请求的URI资源不存在,则URI可以被定义成新的资源,这是,服务器必须通过201(建立)响应通知用户。【PUT用于增加资源信息】
3. DELETE
请求服务器删除所请求的URI所标识的资源。【DELETE用于删除资源信息】
4. OPTIONS
返回该资源所支持的所有HTTP请求方法。文章来源:https://www.toymoban.com/news/detail-858183.html
5. TRACE
6. 回显服务器收到的请求,用于测试和诊断。文章来源地址https://www.toymoban.com/news/detail-858183.html
到了这里,关于HTTP中get和post请求方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!