1.HTTP相应的结构是怎么样的?
HTTP响应由三个部分组成:
1:状态码(Status Code):描述了响应的状态。可以用来检查是否成功的完成了请求。请求失败的情况下,状态码可用来找出失败的原因。如果Servlet没有返回状态码,默认会返回成功的状态码HttpServletResponse.SC_OK。
2:HTTP头部(HTTP Header):它们包含了更多关于响应的信息。比如:头部可以指定认为响应过期的过期日期,或者是指定用来给用户安全的传输
3:实体内容的编码格式。如何在Serlet中检索HTTP的头部看这里。
主体(Body):它包含了响应的内容。它可以包含HTML代码,图片,等等。主体是由传输在HTTP消息中紧跟在头部后面的数据字节组成的。
2.HTTP状态中302,403,500代码含义?
12345原则:
一. 消息系列
二 成功系列
三. 重定向系列
四. 请求错误系列
五. 服务器端错误系列
302:临时转移成功,请求的内容已转移到新位置 403:禁止访问 500:服务器内部错误 401代表未授权
3.简述网路分层里七层模型?
应用层:应用层、表示层、会话层(从上往下)(HTTP、FTP、SMTP、DNS)传输层(TCP和UDP)网络层(IP)物理和数据链路层(以太网)
每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
4.整理归纳HTTP状态码?
(1)100 Continue表示继续,一般在发送post请求时,已发送了 HTTP header之后,服务器端将返回此信息,表示确认,之后发送具体参数信息。
(2)200 OK表示正常返回信息
(3)201 Created表示请求成功并且服务器创建了新的资源。
(4)202 Accepted表示服务器已接受请求,但尚未处理。
(5)301 Moved Permanently表示请求的网页已永久移动到新位置。
(6)302 Found表示临时性重定向。
(7)303 See Other表示临时性重定向,且总是使用GET请求新的URI。
(8)304 Not Modified表示自从上次请求后,请求的网页未修改过,
(9)400 Bad Request表示服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
(10)401 Unauthorized表示请求未授权。
(11)403 Forbidden表示禁止访问。
(12)404 Not Found表示找不到如何与URI相匹配的资源。
(13)500 Internal Server error表示最常见的服务器端错误。
(14)503 Service Unavailable表示服务器端暂时无法处理请求(可能是过载或维护)。
5.简述四层和七层负载均衡?
四层负载均衡:
所谓四层负载均衡是指OSI七层模型中的传输层, 那么传输层Nginx已经支持TCP/IP的控制, 所以只需要对客户端的请求进行TCP/IP协议的包转发就可以实现负载, 那么他的好处是性能非常快, 只需要底层进行应用处理,而不需要进行一些复杂的逻辑.
七层负载均衡:
七层负载均衡是在应用层,那么他可以完成后很多应用方面的协议请求,
当然四层有四层的好处,七层七层的好处,四层就不支持协议的转发,(http,https,DNS等)只支持IP,但是它的速度快.
应用层虽然没有四层负载快,但是支持很多功能,比如说他支持http信息的改写、头部信息的改写、(意识是,七层代理着用户往后请求的时候把我们用户请求的头部信息加上,长连接协议也可以修改等)、安全应用规则控制、URL匹配规则控制、以及转发、rewrite等一些规则,所以在应用层的服务里面,可以做的内容就更多了。Nginx是一个典型的七层负载均衡
【四层和七层的区别】
四层负载均衡数据在底层就进行了分发,而七层负载均衡数据包则是在最顶层进行分发,由此可以看出,七层负载均衡效率没有四层负载均衡高。
但是七层负载均衡更贴近于服务,如HTTP协议就是七层协议,我们可以用Nginx可以作会话保持,URL路径规则匹配,head头改写等等,这些都是四层负载均衡无法实现的。
注意:四层负载均衡不识别域名,七层负载均衡识别域名
6.简述OSI七层模型?
从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP SMTP SNMP DNS.
表示层:数据的表示、安全、压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话.
传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP UDP.
网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP IGMP IP等.
数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。
物理层:建立、维护、断开物理连接
7.简述HTTP2理解?
HTTP/2引入了“服务器端推送”(server push)的概念,它允许服务器端在客户端需要数据之前主动将数据发送到客户端缓存中,从而提高性能。
HTTP/2提供更多的加密支持。
HTTP2使用多路技术,允许多个消息在一个连接上同时交差。
它增加了头压缩( header compression),因此请求非常小,请求和响应的 header都只会占用很小的带宽比例
8.简述HTTP中有哪些请求方式?
(1)GET:请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL,给服务器传递参数数据
(2)POST:传输信息给服务器,主要功能与GET方法类似,但传递的数据量通常不受限制。
(3)PUT:传输文件,报文主体中包含文件内容,保存到对应URI位置。
(4)HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
(5) DELETE:删除文件,与PUT方法相反,删除对应URL位置的文件。
(6)OPTIONS:查询相应URI支持的HTTP方法