0
点赞
收藏
分享

微信扫一扫

HTTP协议有关知识

上古神龙 2022-02-16 阅读 85

一、HTTP协议

1、什么是HTTP报文?
HTTP报文是HTTP协议在客户端和服务端之间传送的数据块。

2、HTTP报文由哪三部分组成?
HTTP报文由起始行(start line)、头部(header)和主体(body)三部分组成,起始行是对报文进行的描述,头部包含报文的一些属性,主体包含报文的数据(可选,非必选)。

3、HTTP报文分为哪两类?
HTTP报文可以分为:请求报文(request message)和响应报文(response message)。当客户端向服务端发送请求时,就是发送请求报文;当服务端向客户端返回数据时,就是返回响应报文。

4、HTTP常见的请求方法有哪些?
方法                    描述                                                                          是否包含主体
GET                   从服务端获取指定信息                                                      否
POST                向服务端发送待处理的数据                                               是
HEAD               从服务端获取指定信息的头部                                            否
PUT                  向服务端发送数据并替换服务端上指定的数据                   是
OPTIONS         查询针对请求URL指定的资源支持                                     否
DELETE           从服务端删除指定数据                                                        否
TRACE            沿着目标资源的路径执行消息环回测试                                否

 

5、HTTP常见的状态码有哪些?

状态码    原因短语    含义
100    Continue    说明收到了请求的初始部分,请客户端继续。
101    Switching Protocols    说明服务端正在根据客户端的指定,将协议切换成Update头部所列的协议。
200    OK    请求没有问题,主体包含了所请求的数据。
201    Created    用于在服务端创建数据的请求(比如PUT),Location头部给出了创建数据的URL。
202    Accepted    请求已经被接受,但服务端还没有对其执行任何动作。
203    Non-Authoritative Information    数据已经正常地返回,但一些响应报文头部可能不正确。
204    No Content    响应报文中包含起始行和头部,没有主体部位。客户端应该继续显示原来的数据。
205    Reset Content    仍然没有主体部分,但客户端应该清除它所显示的数据。
206    Partial Content    成功执行了一部分或者一个范围内的请求。
300    Multiple Choices    客户端请求了一个实际指向多个资源的URL,服务端可以在Location头部包含首选URL。
301    Moved Permanently    请求的URL已经被移除,响应报文中的Location头部包含现在资源的URL。
302    Found    类似于301,但新的URL应该被视为临时性的,将来的请求仍应是老的URL。
303    See Other    类似于301,但主要目的是允许POST请求的响应将客户端定向到某个资源上。
304    Not Modified    客户端有缓冲的文档并发出了一个条件性的请求时,服务端告知客户端,原来缓冲的数据还可以继续使用。
305    Use Proxy    用来说明必须通过代理进行访问,代理的位置在Location头部给出。
306    -    未使用
307    Temporary Redirect    类似于301,但客户端应该使用Location头部给出的URL临时请求,将来的请求仍应是老的URL。
400    Bad Request    客户端发出的是错误请求,服务器无法理解。
401    Unauthorized    请求要求客户端的身份认证
402    Payment Required    保留,以作将来使用
403    Forbidden    服务端理解客户端的请求,但是拒绝执行此请求。
404    Not Found    服务端无法找到客户端所请求的URL。
405    Method Not Allowed    服务端不支持客户端请求的方法。
406    Not Acceptable    服务端无法根据客户端请求的类型完成请求。
407    Proxy Authentication Required    类似于401,但用于要求对资源进行认证的代理服务器。
408    Request Timeout    服务端等待客户端发送的请求时间过长,服务端可以响应此状态码,并关闭连接。
409    Conflict    客户端的请求可以在资源上引发一些冲突,服务端可以发送此状态码。
410    Gone    类似于404,但是服务端曾经拥有过此资源。
411    Length Required    服务端要求客户端的请求报文中包含Content-Length头部时,使用此状态码。
412    Precondition Failed    客户端发起了条件请求,并且其中一个条件失败时,使用此状态码。
413    Request Entity Too Large    客户端发送的主体部分比服务端能够或者期望处理的要大时,使用此状态码。
414    Request URI Too Large    客户端发送的请求URI比服务端能够或者期望处理的要长时,使用此状态码。
415    Unsupported Media Type    服务端无法理解或无法支持客户端所发的内容类型是,使用此状态码。
416    Requested Range Not Satisfiable    客户端请求指定资源的范围无效或无法满足。
417    Expectation Failed    服务端无法满足客户端的Expect头部。
500    Internal Server Error    服务端发生内部错误,无法完成请求。
501    Not Implemented    服务端不支持客户端的请求,无法完成请求。
502    Bad Gateway    作为网关或代理的服务器,从远端服务端接收到了一个无效的请求。
503    Service Unavailable    用来说明服务端现在无法为请求提供服务,但是将来可以。什么时候资源会变为可用可包含在服务端的Retry-After头部中。
504    Gateway Timeout    类似于408,只是作为网关或代理的服务器,未及时从远端服务端获取请求。
505    HTTP Version Not Supported    服务端不支持请求的HTTP协议的版本,无法完成处理。

6、HTTP的缺点与HTTPS
a、通信使用明文不加密,内容可能被窃听
b、不验证通信方身份,可能遭到伪装
c、无法验证报文完整性,可能被篡改

HTTPS就是HTTP加上SSL加密处理(一般是SSL安全通信线路)+认证+完整性保护

7、HTTP优化

利用负载均衡优化和加速HTTP应用

利用HTTP Cache来优化网站

举报

相关推荐

0 条评论