常见的八种http请求方法及GET与POST的区别

HTTP协议简介

超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户机与服务器之间的请求-应答协议。web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。例如:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。

HTTP的常用方法

1.GET方法

GET方法用于使用给定的URI从给定服务器中检索信息,即从指定资源中请求数据。使用GET方法的请求应该只是检索数据,并且不应对数据产生其他影响。

2.POST方法

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

3.HEAD方法

向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回,仅传输状态行和标题部分。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

4.PUT方法

PUT方法用于将数据发送到服务器以创建或更新资源,它可以用上传的内容替换目标资源中的所有当前内容。即向指定资源位置上传其最新内容。

5.DELETE方法

DELETE方法用来删除指定的资源,它会删除URI给出的目标资源的所有当前内容。

6.CONNECT方法

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

7.OPTIONS方法

允许客户端查看服务器的性能。

8.TRACE方法

回显服务器收到的请求,主要用于测试或诊断。

GET与POST的区别

1.后退按钮/刷新

GET:无害。

POST:数据会被重新提交(浏览器应该告知用户数据会被重新提交)。

2.书签

GET:可收藏为书签。

POST:不可收藏为书签。

3.缓存

GET:能被缓存。

POST:不能被缓存。

4.编码类型

GET:application/x-www-form-urlencoded

POST:application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。

5.历史

GET:参数保留在浏览器历史中。

POST:参数不会保存在浏览器历史中。

6.对数据长度的限制

GET:当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的,URL 的最大长度是 2048 个字符。

POST:没有限制。

7.对数据类型的限制

GET:只允许 ASCII 字符。

POST:没有限制。也允许二进制数据。

8.安全性

GET:安全性较差,因为所发送的数据是 URL 的一部分。

POST:更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。

9.可见性

GET:数据在 URL 中对所有人都是可见的。

POST:数据不会显示在 URL 中。

10.请求次数

GET:发送一次http请求。

POST:先发送请求头再发送请求体,相当于两次请求。

11.刷新

GET:不会刷新数据。

POST:刷新,数据会被重复提交。

12.速度

GET:直接发送请求头和数据,所以快。

POST:比get 慢,因为post在发送数据前会先将请求头发给服务器进行确认,然后才真正发送数据。

你可能感兴趣的:(http)