多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
http请求中的8种请求方法 * 1、`GET`方法 发送一个请求来取得服务器上的某一资源 * 2、`POST`方法 向`URL`指定的资源提交数据或附加新的数据 * 3、`PUT`方法 跟`POST`方法很像,也是想服务器提交数据。但是,它们之间有不同。PUT指定了资源在服务器上的位置,而`POST`没有 * 4、`HEAD`方法 只请求页面的首部 * 5、`DELETE`方法 删除服务器上的某资源 * 6、`OPTIONS`方法 它用于获取当前`URL`所支持的方法。如果请求成功,会有一个`Allow`的头包含类似`“GET,POST”`这样的信息 * 7、`TRACE`方法 `TRACE`方法被用于激发一个远程的,应用层的请求消息回路 * 8、`CONNECT`方法 把请求连接转换到透明的`TCP/IP`通道 ## **GET和POST的区别** > (1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中) > > (2)post发送的数据更大(get有url长度限制) > > (3)post能发送更多的数据类型(get只能发送ASCII字符) > > (4)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作 > > (5)post比get慢( post请求包含更多的请求头 、 post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据 ) > > (6)get会将数据缓存起来,而post不会( get方式请求静态数据(比如html页面,图片)---- IE什么都会缓存起来 ) ```js // 兼容IE--get请求有缓存 if (window.ActiveXObject || 'ActiveXObject' in window) { let isHaveParams = url.match(/\?/) if (isHaveParams) { url = `${url}&${new Date().getTime()}` } else { url = `${url}?${new Date().getTime()}`} } ``` GET和POST都是HTTP协议中的两种发送请求的方法, - GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。----Firefox就只发送一次 - 请求的数据:GET附在URL之后(数据放在HTTP协议头<request-line>中); POST把提交的数据放置在是HTTP包的包体<request-body>中,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变; - 传输数据的大小:特定浏览器和服务器对URL长度有限制;POST:由于不是通过URL传值,理论上数据不受限。 - 安全性:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存, (2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了 ```javascript 1:GET在浏览器回退时是无害的,而POST会再次提交请求。 2:get随在url后面,有长度限制。post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。 3:GET请求只能进行url编码,而POST支持多种编码方式。 4:缓存:GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。 5,get的参数url可见;post的url参数不可见 6,数据传输: get通过拼接url进行传递参数; post通过body体传输参数 ```