HTTP知识总结

一、什么是HTTP?

HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。

HTTP发展史:1991年推出HTTP/0.9;1996推出HTTP/1.0;1999年推出HTTP/1.1;2015年推出HTTP/2

二、HTTP报文格式

请求报文:请求行(包含请求方法,URI、HTTP版本信息)、请求头、请求内容

响应报文:状态行、响应头、响应内容

三、HTTP常用方法

HTTP常用方法
GET用于请求访问已经被URI识别的资源,可以通过RL传参给服务器
POST用于传输信息给服务器,主要功能与GEt方法类似;
PUT传输文件,报文主体中包含文件内容,保存到对应的URI位置。
HEAD获取报文首部,与get方法类似,只是不返回报文主体,一般用于验证URL是否有效;
DELETE删除文件,与PUT方法相反,删除对应URL位置的文件;
OPTIONS查询相应URI支持的HTTP方法;
CONNECT把请求连接转换到透明的 TCP/IP 通道。

GET方法和POST方法的区别 

1)、get重点是从服务器上获取资源,post重点向服务器发送数据

2) 、get传输数据是通过URL请求,显示的追加field值,因此是不安全的;post传输数据通过post机制,将对应字段与对应值封装在实体中,过程是用户不可见的,所以相对比较安全;

3)、get传输数据量受URL长度限制,数据量小,但效率较高;Post可以传输大量的数据;

4)、get方法只支持ASCII字符,中文字符回乱码;Post支持标准字符集

四、HTTP常见的状态码

1XX:信息
状态码描述
100 Continue服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求.
101 Switching Protocols服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。

 

 

 

 

2XX:成功
状态码描述
200 OK请求已成功,请求所希望的响应头或数据体将随此响应返回
201 Created请求被创建完成,同时新的资源被创建。
202 Accepted供处理的请求已被接受,但是处理未完成。
203 Non-authoritative Information文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝
204 No Content没有新文档。浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
205 Reset Content没有新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。
206 Partial Content客户发送了一个带有Range头的GET请求,服务器完成了它

 

 

 

 

 

 

 

 

3XX:重定向
状态码描述
300 Multiple Choices多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。
301 Moved Permanently所请求的页面已经转移至新的url。
302 Found所请求的页面已经临时转移至新的url。
303 See Other所请求的页面可在别的url下被找到。
304 Not Modified未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy客户请求的文档应该通过Location头所指明的代理服务器提取。
306 Unused此代码被用于前一版本。目前已不再使用,但是代码依然被保留。
307 Temporary Redirect被请求的页面已经临时移至新的url

 

 

 

 

 

 

 

 

 

 

 

4XX:客户端错误
状态码描述
400 Bad Request服务器未能理解请求。
401 Unauthorized被请求的页面需要用户名和密码。
402 Payment Required此代码尚无法使用。
403 Forbidden对被请求页面的访问被禁止。
404 Not Found服务器无法找到被请求的页面。
405 Method Not Allowed请求中指定的方法不被允许。
406 Not Acceptable服务器生成的响应无法被客户端所接受。
407 Proxy Authentication Required用户必须首先使用代理服务器进行验证,这样请求才会被处理。
408 Request Timeout请求超出了服务器的等待时间。
409 Conflict由于冲突,请求无法被完成。
410 Gone被请求的页面不可用。
411 Length Required"Content-Length" 未被定义。如果无此内容,服务器不会接受请求。
412 Precondition Failed请求中的前提条件被服务器评估为失败。
413 Request Entity Too Large由于所请求的实体的太大,服务器不会接受请求。
414 Request-url Too Long由于url太长,服务器不会接受请求。当post请求被转换为带有很长的查询信息的get请求时,就会发生这种情况。
415 Unsupported Media Type由于媒介类型不被支持,服务器不会接受请求。
416 Requested Range Not Satisfiable服务器不能满足客户在请求中指定的Range头。

417 Expectation Failed

在请求头 Expect 中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服务器,它有明显的证据证明在当前路由的下一个节点上,Expect 的内容无法被满足

421 too many connections

从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围

422 Unprocessable Entity

请求格式正确,但是由于含有语义错误,无法响应

423 Locked

当前资源被锁定

424 Failed Dependency

由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH

425 Unordered Collection

 

426 Upgrade Required

客户端应当切换到TLS/1.0

449 Retry With

由微软扩展,代表请求应当在执行完适当的操作后进行重试

451Unavailable For Legal Reasons

该请求因法律原因不可用

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5XX:服务器错误
状态码描述
500 Internal Server Error请求未完成。服务器遇到不可预知的情况。
501 Not Implemented请求未完成。服务器不支持所请求的功能。
502 Bad Gateway请求未完成。服务器从上游服务器收到一个无效的响应。
503 Service Unavailable请求未完成。服务器临时过载或当机。
504 Gateway Timeout网关超时。
505 HTTP Version Not Supported服务器不支持请求中指明的HTTP协议版本。

506 Variant Also Negotiates

代表服务器存在内部配置错误

507 Insufficient Storage

服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。

509 Bandwidth Limit Exceeded

服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用

510 Not Extended

获取资源所需要的策略并没有被满足

600 Unparseable Response Headers

源站没有返回响应头部,只返回实体内容

 

 

 

 

 

 

 

 

 

 

 

 

 

五、HTTP1.1和HTTP2.0

HTTP2.0较之HTTP1.1的性能提高,主要改进在以下几点:(详细原理请参考《Java后端技术》公众号中的HTTP相关文章)

a、多路复用技术:单连接多资源的方式,减少服务端的链接压力,内存占用更少,连接吞吐量更大;由于减少TCP 慢启动时间,提高传输的速度

b、首部压缩:浏览器和服务端维护一份相同的静态字典和动态字典

c、HTTP2支持服务器端推送:引入了server push,允许服务端推送资源给浏览器。

六、HTTP和HTTPS

七、Tomcat如何开启HTTPS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值