HTTP服务与HTTPS

1.HTTP与HTTPS有什么联系?它们的端口号是什么?
答:HTTP通常承载于TCP之上,在HTTP和TCP之间添加一个安全协议层(SSL或TSL),这时,就成了我们常说的HTTPS。HTTP默认的端口号是80,HTTPS默认的端口号是443.

2.HTTP常见状态码

  • 100:继续,一般在发送post请求时,已发送了HTTP header之后,服务器端将返回此信息,表示确认,之后发送具体参数信息。
  • 200:正常返回信息。
  • 201:请求成功并且服务器创建了新资源。
  • 202:服务器已接受请求,但尚未处理。
  • 301:请求的网页已永久移动到新位置。
  • 302:临时性重定向。
  • 303:临时性重定向,且总是使用GET请求新的URI。
  • 304:自从上次请求后,请求的网页未修改过。
  • 400:服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
  • 401:请求未授权。
  • 403:禁止访问。
  • 404:找不到如何与URI相匹配的资源。
  • 500:最常见的服务器端错误。
  • 503:服务器端暂时无法处理请求(可能是过载或维护)。

3.什么是HTTP
答:HTTP是客户端与服务器端之间数据传输的格式规范,表示“超文本传输协议”。

4.完整的HTTP事务流程是怎样的?
答:基本流程如下:

  • 域名解析;
  • 发起TCP的3次握手;
  • 建立TCP连接后发起的HTTP请求;
  • 服务器端响应HTTP请求,浏览器得到HTML代码;
  • 浏览器解析HTML代码,并请求HTML代码中的资源;
  • 浏览器对页面进行渲染并呈现给用户。

5.什么是HTTP无状态协议?如何克服HTTP无状态协议的缺陷?
答:(1)无状态协议对于事务处理没有记忆能力,缺少状态意味着如果后续需要处理,需要前面提供的信息。
(2)克服无状态协议缺陷的办法是通过cookie和会话保存信息。

6.HTTP的请求报文响应报文包含哪些部分?
答:请求报文包含3部分:
(1)请求行,包含请求方法、URI、HTTP版本信息;
(2)请求首部字段;
(3)请求内容实体。
响应报文包含3部分:
(1)状态行,包含HTTP版本、状态码、状态码的原因短语;
(2)响应首部字段;
(3)响应内容实体。

7.HTTP协议有哪些特征
答:支持客户端/服务器模式,简单快速,灵活,无连接,无状态

8.如何优化HTTP请求
答:利用负载均衡优化和加速HTTP应用请求;利用HTTP缓存来优化网站请求

9.与HTTPS相比,HTTP有什么缺点
答:HTTP缺点如下:
(1)通信使用明文,不加密,内容可能被窃听,也就是被抓包分析;
(2)不验证通信方身份,可能遭到伪装;
(3)无法验证报文完整性,可能被篡改
HTTPS就是HTTP+加密处理(一般是SSL安全通信线路)+认证+完整性保护

10.说说TCP传输的三次握手、四次挥手策略
答:为了准确无误地把数据送达目标处TCP采用了三次握手策略。用TCP把数据包发送出去后,TCP不会对传送后的数据置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志,即SYNACK
发送端首先给接收端发送一个带SYN标志的数据包。接收端收到后,回传一个带有SYN/ACK标志的数据包以表示正确传达,并确认信息。最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。若在握手过程中的某个阶段莫名中断,TCP会再次以相同的顺序发送相同的数据包。
断开一个TCP连接则需要“四次握手”:

  • 第一次握手:主动关闭方发送一个FIN,用来关闭主动关闭方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方,主动关闭方已经不会再给被动关闭方发送数据了(当然,在FIN包之前发送出去的数据,如果没有收到对应的ACK确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接收数据。
  • 第二次握手:被动关闭方收到FIN包后,给对方发送一个ACK,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
  • 第三次握手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,被动关闭方的数据也发送完了,不会再给主动关闭方发送数据了。
  • 第四次握手:主动关闭方收到FIN后,给被动关闭方发送一个ACK,确认序号为收到序号+1,至此,完成四次握手。

11.说说TCPUDP的区别。
答:TCP(传输控制协议):基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过**3次“**对话”才能建立起来。
UDP(用户数据报协议):与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。

12.讲讲304缓存的原理。
答:服务器首先为请求生成ETag,服务器可在稍后的请求中,使用它来判断页面是否已经修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)是否缓存。
304是HTTP状态码,服务器用它来标识这个文件没有修改,不返回内容,浏览器在接收到这个状态码后,会使用浏览器已缓存的文件。
客户端请求页面A。服务器返回页面A,并给A加上一个ETag。客户端展现该页面,并将页面连同ETag一起缓存。客户端再次请求页面A,并将上次请求时服务器返回的ETag一起传递给服务器。服务器检查该ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304和一个空的响应体。

猜你喜欢

转载自blog.csdn.net/weixin_43675447/article/details/88371079
今日推荐