HTTP高频面试题

235 阅读7分钟

目录

1.什么是HTTP

2.你是怎么理解 HTTP 字面上的“超文本”和“传输协议”的?

3.HTTP 有什么特点?有什么优点和缺点?

4.HTTP 下层都有哪些协议?是如何工作的?​

5.HTTP1.0 1.1 2.0区别

(1)HTTP1.0与HTTP1.1的区别

(2)HTTP1.1 HTTP2.0主要区别

6.osi七层模型/tcpip四层模型: 一个请求发送后,在这几层模型里边都干了什么

7.各种状态码503,401,403,204,206

8.HTTP与HTTPS的区别

9.HTTP报文是什么

10.HTTP报文由哪几个方面组成?

11.HTTP报文分为哪几类

12.HTTP常见的请求方法有哪些

13.HTTP实现的原理机制

1.什么是HTTP

答:HTTP是一个用在计算机世界里的协议,它确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。

2.你是怎么理解 HTTP 字面上的“超文本”和“传输协议”的?

答:

协议是什么,是我和你,你和他之间的约定和规范

传输是一定要有请求方,要有响应方的!所以是在两者之间,但又不限于两者之间,比如说,这里有A和B想要通话,那可不可以有中间人在其中,当然可以。

所以传输协议HTTP就是在计算机世界里专门用来在两点之间传输数据的约定和规范!

文本是什么呢,文本就是指有意义的,可以被浏览器,服务器这种上层应用程序处理的。

超文本,就是超越了普通文本的文本,是文字,视频,图片,声音的混合体,最关键的是含有超链接,能够从一个超文本跳转到另一个超文本,形成复杂度,非线性的,网状的结构关系!

3.HTTP 有什么特点?有什么优点和缺点?

特点:

1.灵活可扩展的(优点),可以任意添加头字段实现任意功能;

2.HTTP是可靠传输协议,基于TCP/IP协议“尽量”保证数据的送达;

3.HTTP是应用层协议,比FTP,SSH等功能更多,能够传输任意数据;

4.HTTP使用了请求-应答模式,客户端主动发起请求,服务器被动恢复请求;

5.HTTP本质上是无状态的,每个请求都是互相独立,毫无关联的,协议不要求客户端或服务器记录请求相关信息。 优点:

1.HTTP 拥有成熟的软硬件环境,应用的非常广泛,是互联网的基础设施

2.HTTP 是无状态的,可以轻松实现集群化,扩展性能,

3.HTTP 是明文传输,数据完全肉眼可见,能够方便地研究分析,

缺点:

1.无状态,cookie

2.明文传输,不安全

3.HTTP 是不安全的,无法验证通信双方的身份,也不能判断报文是否被窜改; (集群化)负载均衡:把访问请求均匀分散到多台机器,实现访问集群化

4.HTTP 下层都有哪些协议?是如何工作的?

1.链接层,负责在WiFi这样的底层网络发送数据包

2.网络层,IP协议在这个地方

3.传输层,TCP/UDP协议在这个地方

TCP 是一个有状态的协议,需要先与对方建立连接然后才能发送数据,而且保证数据不丢失不重复。而 UDP 则比较简单,它无状态,不用事先建立连接就可以任意发送数据,但不保证数据一定会发到对方。两个协议的另一个重要区别在于数据的形式。TCP 的数据是连续的“字节流”,有先后顺序,而 UDP 则是分散的小数据包,是顺序发,乱序收。 4.应用层:用具体的应用传输数据。

5.HTTP1.0 1.1 2.0区别

(1)HTTP1.0与HTTP1.1的区别

1.HTTP1.0需要使用keep-alive参数来告知服务端要建立一个长连接,而HTTP1.1支持长连接。(HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。)

2.节约带宽(header和body的关系(100/401))

3.HTTP1.1有host域

(2)HTTP1.1 HTTP2.0主要区别

1.多路复用。

2.数据压缩。

3.服务器推送。

6.osi七层模型/tcpip四层模型: 一个请求发送后,在这几层模型里边都干了什么

我们用HTTP举例来说明,首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求。

接着,为了传输方便,在传输层(TCP协议)把应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记及端口号后转发给网络层。

在网络层(IP协议)增加作为通信目的地的MAC地址后发给链路层。

7.各种状态码503,401,403,204,206

URI(统一资源标识符)

URL(统一资源定位符)

200:请求被正常处理 204:请求被受理但没有资源可以返回 206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。 301:永久性重定向 302:临时重定向 303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上 304:发送附带条件的请求时,条件不满足时返回,与重定向无关 307:临时重定向,与302类似,只是强制要求使用POST方法 400:请求报文语法有误,服务器无法识别 401:请求需要认证 403:请求的对应资源禁止被访问 404:服务器无法找到对应资源 500:服务器内部错误 503:服务器正忙

8.HTTP与HTTPS的区别

HTTPS是安全超文本协议,在HTTP的基础上有更强的安全性。简单来说,HTTPS是使用TLS/SSL加密的HTTP协议。

9.HTTP报文是什么

HTTP报文是HTTP协议在客户端与服务端之间传输的数据块。

10.HTTP报文由哪几个方面组成?

(1)起始行,包含了报文的一些信息

(2)头部,包含了报文的一些属性

(3)身体,包含了报文的一些数据

11.HTTP报文分为哪几类

分为两类,请求报文和响应报文

请求报文即客户端向服务端发送的请求数据块

响应报文即服务端向客户端发送的响应数据块

12.HTTP常见的请求方法有哪些

(1)GET 不包含主体,从服务端那里获取制定信息(获取资源)

(2)POSE,包含主体,向服务端发送待处理的数据(传输实体主体)

(3)PUT,包含主体,向服务端发送数据并替换指定的数据(传输文件)

(4)TRACE,不包含主体,沿着目标路径进行环回测试(追踪路径)

(5)HEAD,不包含主体,从服务端获取头部字段(获取报文头部)

(6)OPTIONS:不包含主体,询问支持方法!

(7)DELDETE:不包含主体,删除文件。

(8)CONNECT:不包含主体,要求用隧道协议连接代理

13.HTTP实现的原理机制

(1)域名解析

(2)发起TCP三次握手

(3)发起HTTP请求

(4)服务器响应HTTP请求

(5)浏览器解析HTML代码,并请求HTML中的资源(如JS,CSS,图片等)

(6)浏览器对页面进行渲染并呈现给用户

参考文献:

HTTP1.0 HTTP 1.1 HTTP 2.0主要区别

极客时间:透视HTTP

图解HTTP

HTTP和HTTPS协议,看一篇就够了

blog.csdn.net/weixin_3805…