HTTPv1.1后,默认都开启了Keep-Alive,能够保存长连接,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP链接不会关闭,若是客户端再次访问这个服务器上的网页,会继续使用这一条已经创建的链接浏览器
Keep-Alive不会永久保持链接,它有一个保持时间,能够在不一样的服务器软件(如Apache)中设定这个时间。缓存
GET 方法
- GET 请求可被缓存
- GET 请求保留在浏览器历史记录中
- GET 请求可被收藏为书签
- GET请求只能进行URL编码,只接受ASCII字符
- GET产生一个TCP数据包, 浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
- GET 浏览器对URL长度有限制
- IE浏览器对URL的最大限制为2083个字符
- Firefox浏览器URL的长度限制为65,536个字符。
- Google浏览器URL最大长度限制为8182个字符。
POST 方法
- POST 请求不会被缓存
- POST 请求不会保留在浏览器历史记录中
- POST 不能被收藏为书签
- POST 请求对数据长度没有要求,Tomcat对POST大小限制默认2M;
- POST 支持多种编码方式
- 点击浏览器的回退时, 数据会被从新提交
- POST产生两个TCP数据包(Firefox就只发送一次),浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(发送2次包的TCP在验证数据包完整性上,有很是大的优势)。
- POST不是时幂等
PUT 方法
- PUT是幂等操做
- PUT请求中的URI表示请求中封闭的实体-用户代理知道URI的目标,而且服务器没法将请求应用到其余资源。若是服务器但愿该请求应用到另外一个URI,就必须发送一个301响应;用户代理可经过本身的判断来决定是否转发该请求。
DELETE 方法
HEAD 方法
- 类GET方法,不响应页面Body部分,用于获取资源的基本信息,即检查连接的可访问性及资源是否修改。
- 只请求资源的首部
- 检查超连接的有效性
PATCH 方法
- PATCH方法是幂等的。
- 对PUT方法的补充,对已知资源进行"局部更新"
常见HTTP状态码
- 信息代码:1xx:
- 100 客户端继续发送请求
- 101 切换协议(只能切换到更高级的协议,例如,切换到HTTP的新版本协议)
- 成功代码:2xx:
- 200 (成功) 服务器已成功处理了请求。 一般,这表示服务器提供了请求的网页。
- 201 (已建立) 请求成功而且服务器建立了新的资源。
- 202 (已接受) 服务器已接受请求,但还没有处理。
- 203 (非受权信息) 服务器已成功处理了请求,但返回的信息可能来自另外一来源。
- 重定向:3xx:
- 301(永久重定向)请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
- 302(临时重定向) 服务器目前从不一样位置的网页响应请求,但请求者应继续使用原有位置来进行之后的请求。(禁止post变化get,能够用)。
- 303 该状态码表示因为请求对应的资源存在着另外一个URI,应使用GET方法定向获取请求的资源。(http/1.1以前没法准确适用)
- 304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
- 307 (临时重定向)遵守浏览器标准,不会从post变为get。
- 客户端错误:4xx:
- 400(错误请求) 一、服务器不理解请求的语法,除非进行修改,不然客户端不该该重复提交这个请求。。二、请求参数有误。
- 401(未受权) 请求要求身份验证。服务器验证拒绝了用户证书。
- 403(禁止) 服务器拒绝请求。
- 404(未找到) 请求失败,请求所但愿获得的资源未被在服务器上发现。服务器找不到请求的网页。
- 405(方法禁用) 禁用请求中指定的方法。鉴于 PUT,DELETE 方法会对服务器上的资源进行写操做,鉴于 PUT,DELETE 方法会对服务器上的资源进行写操做。
- 406(不接受) 没法使用请求的内容特性响应请求的网页。请求的资源的内容特性没法知足请求头中的条件,于是没法生成响应实体。
- 408(请求超时) 服务器等候请求时发生超时。能够再次提交请求。
- 410(已删除) 若是请求的资源已删除,并且没有任何已知的转发地址,服务器就会返回此响应。
- 413(请求实体过大) 服务器没法处理请求,由于请求实体过大,超出服务器的处理能力。
- 414(请求的 URI 过长) 请求的 URI(一般为网址)过长,服务器没法处理。
- 服务器错误:5xx:
- 500 (服务器内部错误) 服务器遇到错误,没法完成请求。
- 501 (还没有实施) 服务器不具有完成请求的功能。 例如,服务器没法识别请求方法时可能会返回此代码。
- 502 (错误网关) 服务器做为网关或代理,从上游服务器收到无效响应。
- 503 (服务不可用) 服务器目前没法使用(因为超载或停机维护)。 一般,这只是暂时状态。
- 504 (网关超时) 服务器做为网关或代理,可是没有及时从上游服务器收到请求。
- 505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。