http网络请求的类型以及get和post的区别

http网络请求的类型有八种,分别是:

  1. get:表示向服务器获取资源,可以携带参数,参数与URL地址之间使用问号(?)隔开,传递的参数长度受到限制,并且会显示在浏览器地址栏中;

  1. post:表示向服务器提交信息,通常用于产生新的数据,如注册表单等,将请求参数封装在http请求数据中,以名称/值的形式出现,可以传递大量的数据,对传递数据的大小没有限制,不会显示在浏览器地址栏中;

  1. put:表示更新服务器的数据,客户端提供更新后的整个资源;

  1. patch:表示更新服务器上的数据,客户端提供更改的属性,可以看做是部分更新,一般是put不够用了才会使用patch请求,使用的比较少;

  1. delete:表示希望删除浏览器特定的数据;

  1. options:发生在跨域的预检请求中,表示向服务器申请跨域提交;

  1. head:表示向服务器发送请求,但是服务器在接收到该请求后,只返回响应头,而不会发送响应内容,一般用于我们只需要查看某个页面的状态时;

  1. trace:回显服务器收到的请求,主要用于检测和诊断(不太常用);

  1. connect:用于建立连接管道,通常在代理场景中使用,网页中很少用到。

get和post的区别:

  1. get请求一般是获取数据的,(也可以提交,但是常见的是获取数据),post请求一般是提交数据的;

  1. get请求在浏览器回退中是无害的,而post请求会再次提交请求;

  1. get请求会把参数暴露在URL地址栏中,所以安全性比较差,请求的参数长度也是有限的,不同的浏览器和服务器不同,一般限制在2~8k之内,最常见是1k以内,post请求没有长度的限制,请求数据是放在body中的;

  1. get请求可以被缓存,post请求不会被缓存;

  1. get请求会被保存在浏览器历史记录栈中,post不会,get请求可以被收藏为书签,因为参数就在URL中,而post不能,因为post的参数不在URL中;

  1. get请求只能进行URL编码(application-x-www-form-urlencoded),post请求支持多种(multipart/form-data等);

  1. 底层都是tcp/ip协议,但是get请求产生一个TCP数据包,post请求产生两个TCP数据包;

  1. get请求会把header和data一起发出,服务器响应200,表示数据返回成功,而post请求会先发送header,服务器响应100,浏览器再继续发送data,服务器响应200,表示数据返回成功。

猜你喜欢

转载自blog.csdn.net/m0_46318298/article/details/129144792
今日推荐