详解POST与GET

参考资料:http://www.w3school.com.cn/tags/html_ref_httpmethods.asp

POST和GET同属于HTTP请求的两种方法

A、GET是从服务器获取数据,POST是向服务器提交数据

B、与POST相比,GET的安全性较差,因为GET的请求参数是放在URL上的,而POST则是放在body里面

C、由于GET的请求参数是放在URL上的,所以相比POST来说,GET传输的数据量受限于URL长度,实际传输量取决于浏览器,而理论上传输大小为2KB。POST则不受限制,一般默认不超100K

D、GET请求会被缓存,参数会保留着浏览器历史中,而POST不会。所以要留意当提交表单为GET方法时,浏览器回退,可能导致重复提交表单。

三次握手:

POST请求的过程:

A、浏览器请求tcp连接(第一次握手)
B、服务器答应进行tcp连接(第二次握手)
C、浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
D、服务器返回100 continue响应
E、浏览器开始发送数据
F、服务器返回200 ok响应

GET请求的过程:

A、浏览器请求tcp连接(第一次握手)
B、服务器答应进行tcp连接(第二次握手)
C、浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
D、服务器返回200 ok响应。

关于100-continue:

当我们使用POST请求时,浏览器并不会马上将数据发送到服务器端,而是先向服务端发送一个包含"Expect: 100-continue" 头域的请求信息,意指询问服务器是否接受大数据传输,若服务器拒绝则不会发送数据,只有当服务器正确响应该请求时,浏览器才会真正的将数据发送到服务端。此目的是为了避免服务器拒绝接受大数据时,而浏览器却已经发送了数据过去,导致资源浪费。

关于CURL:

CURL-POST请求一般情况下会直接将数据发送至服务端。
但是当传输的数据量过大时,则会先向服务器发送100-continue,等待服务端响应。
为了避免服务端不能正确响应100-continue的情况,我们可以在请求时,添加一个header信息。
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));

扩展:

1、TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。
2、TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。
3、 HTTP协议是基于TCP/IP协议的,因此亦可认为POST和GET两种请求也是基于TCP/IP协议的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Axios是一个基于Promise的HTTP库,用于在浏览器端和Node.js中发送HTTP请求。它可以用于发送GET和POST请求。 GET请求是用于从服务器获取数据的请求方式。使用Vue Axios发送GET请求的方法如下: ```javascript this.$axios.get(url) .then(response => { // 处理返回的数据 }) .catch(error => { // 处理错误 }); ``` POST请求是用于向服务器发送数据的请求方式。可以使用FormData对象发送文件或其他对象作为参数。使用Vue Axios发送POST请求的方法如下: ```javascript let url = 'http://127.0.0.1:8000/uploadimage/'; let formData = new FormData(); formData.append('img', blobInfo.blob()); this.$axios.post(url, formData) .then(response => { // 处理返回的数据 }) .catch(error => { // 处理错误 }); ``` 当发送POST请求时,可以根据需要设置Content-Type,常见的资源类型包括`application/x-www-form-urlencoded`、`multipart/form-data`、`application/json`和`application/xml`。默认情况下,Content-Type为`application/x-www-form-urlencoded`。 以上是使用Vue Axios发送GET和POST请求的方法。希望能对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue axios数据请求get、post方法及实例详解](https://download.csdn.net/download/weixin_38732519/12952521)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Vue实战032:axios使用get和post发送各种请求](https://blog.csdn.net/kevinfan2011/article/details/95312771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值