HTTP常见的请求方法:
(1)GET
(2)POST
(3)PUT
(4)DELETE
(5)HEAD
(6)OPTIONS
(7)TRACE
当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:(1)请求方法URI协议/版本;(2)请求头;(3)请求正文
HTTP响应也由3部分组成:(1)协议状态版本代码描述;(2)响应头;(3)相应正文。
URL完整地指定了要访问的网络资源,而HTTP的GET,POST,PUT,DELETE分别对应着对这个资源的查,改,增,删。大部分情况下我们只用到了GET和POST。
GET
GET用于信息获取。
POST
POST向服务器提交数据,可以改变服务器上的资源。
HEAD
HEAD与GET本质是一样的,区别在于主要用于获取报文首部,不返回报文主体信息。
PUT
PUT与POST极为相似,都是向服务器发送数据,但PUT通常制定了资源存放的位置,而POST没有。
DELETE
DELETE用于删除某一资源。
OPTIONS
OPTIONS用于获取当前URL所支持的HTTP请求方法
TRACE
TRACE用于追踪路径,远程诊断服务器,它会把服务器之前的请求通信返回给客户端。
GET vs POST
(1)发送机制不同,GET一般用于查询/获取资源信息,而POST一般用于更新资源信息。
(2)GET请求的数据会附在URL之后,POST把提交的数据放置在HTTP请求体中
(3)GET方式提交的数据最多只能是1024字节(取决于操作系统的支持),POST理论上没有数据量的限制(取决于服务器的处理能力)。
(4)POST的安全性比GET的安全性高。通过GET提交数据,用户名和密码会以明文的形式出现在URL中
(5)GET请求会被浏览器自动缓存,而POST不会,除非手动设置。
(6)在浏览器回退时,GET是无害的,POST会再次提交请求。
(7)在发送请求时,GET产生一个TCP数据包,服务器响应200.POST产生两个TCP数据包,浏览器先发送header,响应100,再发送data,响应200.
(8)GET请求只能进行url编码,而POST支持多种编码方式。
(9)GET请求参数会被完整保留在浏览历史记录中,而POST中的参数不会被保留
常见的状态码:
状态码 | 释义 |
---|---|
100(Continue) | 继续,表示目前位置一切正常,客户端应该继续请求 |
200(OK) | 表示请求被服务器正常处理 |
204(No Content) | 表示请求已成功处理,但是没有内容返回 |
206(Partial Content) | 表示服务器已经完成了部分GET请求 |
301(Moved Permanently) | 永久重定向,表示请求的资源已经永久的办到了其他位置 |
302(Found) | 临时重定向,表示请求的资源临时搬到了其他位置 |
303(See Other) | 表示请求资源讯在另一个URI,应使用GET定向获取请求资源 |
304(Not Modified) | 表示所请求的资源未修改,服务器返回此状态码时不会返回任何资源 |
307(Temporary Redirect) | 临时重定向 |
400(Bad Request) | 客户端请求的语法错误,服务器无法理解 |
401(Unauthorized) | 请求要求用户的身份认证 |
403(Forbidden) | 服务器理解客户端的请求,但是拒绝执行此请求 |
404(Not Found) | 服务器无法根据客户端的请求找到资源 |
500(Internal Server Error) | 服务器内部错误,无法完成请求 |
502(Bad Gateway) | 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 |
504(Gateway Time-out) | 充当网关或代理的服务器,未及时从远端服务器获取请求 |