关闭
您当前的位置:首页 > 职场资讯 > 前端面试秘籍

web前端面试:http与https相关问题

来源:本站 时间:2020-05-28 作者:Admin 浏览量:

1. ;_ : HTTP 与 HTTPS 有什么联系?它们的端口号是多少?

品; HTTP 通常承载于 TCP 之上,在 HTTP 和 TCP 之间添加 一个安全协议层( SSL

或 TSL ),这个时候,就成了我们常说的 HTTPS o HTTP 默认的端口号为 80, HTTPS 默

认的端口号为 443 。

2. :.. :为什么 HTTPS 更安全?

品;在网络请求中,需要有很多服务器、路 由 器的转友 。 其中的节点都可能篡改信

息,而如果使用 HTTPS ,密钥在终点站才有 。 HTTPS 之所以比 HTTP 安全,是因为它

利用 SS I/tis 协议传输 。 它包含证书、卸载、流量转发、负载均衡、页面适配、浏览器适

配、 refer 传递等技术,保障了传输过程的安全性 。

3. :.. :关于 HTTP/2 你知道多少?

品: HTTP/2 引入了“服务器端推送”( server push )的概念 ,它九许服务器端 在客户

端需要数据之前主动将数据发送到客户端缓存中,从而提高性能 。

HTTP/2 提供更 多的 加 密支持 。

HTTP/2 使用多路技术,九许多个消息在一个连接上同时交差 。

它增加了头压缩( header compression ),因此请求非常 小,请求和响应的 header 都

只会占用很小的带宽比例 。

4. :.:说出你知道的 HTTP 常见状态码 。

品:( 1 ) 100 Co川inue 表示继续,一般在发送 post 请求时,已发送了 HTTP header

之后,服务器端将返回此信息,表示确认,之后发送具体参数信息 。

( 2) 200 OK 表示正常返回信息 。

( 3 ) 201 Created 表示请求成功并且服务器创建了新的资源。

( 4 ) 202 Accepted 表示服务器已接受请求,但尚未处理。

( 5 ) 301 Moved Permanently 表示请求的网页己永久移动到新位直 。

( 6) 302 Found 表示临时性重定向 。

( 7) 303 See Other 表示临时性重走向, 且总是使用 GET 请求新的 URL

( 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. :. :完整的 HTTP 事务流程是怎样的?

品:基本流程如下 。

( 1 )域名解析 。

( 2 )发起 TCP 的 3 次握手 。

( 3 )建立 TCP 连接后发起 HTTP 请求 。

( 4 )服务器端响应 HTTP 请求,浏览 器得到 HTML 代码 。

( 5 )浏览器解析 HTML 代码 , 并请求 HTML 代码中的资源 。

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

6. :. :实现一个简单的 HTTP 服务器 。

;.:在 Node .js 中加 载 HTTP 模块,并创建服务器,监听端口。

代码如下所示 。

va r http= require ( ’ http'); //加载 HTTP 模块

http. createServer (function (req, res) {

res .writeHead(200 , { ’ Content - Type ': ’ text/html ’ }) ; // 200 代表状态成功 , 文档类型是

//给浏览器识别用的

res .write ( ’

res . end (); //结束输出流

}) .listen (3000) ; //绑定 3000

7. :.. :什么是 HTTP?

.7.: HTTP 是客户端和服务器端之间数据传输的格式规范,表示“超文本传输协、议

8. 」L:什么是 HTTP 无状态协、议?如何克服 HTTP 无状态协议的缺陷?

品:( 1 )无状态协议对于事务处理没有记忆能力 。 缺少状态意味着如果后续需要处

理,需要前面提供的信息 。

( 2 )克服元状态协议缺陷的办法是通过 cookie 和会话保存信息 。

9. !.: HTTP 的请求报文和响应报文包含哪些部分?

马:请求报文包含 3 部分 。

( 1 )请求行 , 包含请求方法、 U阳、 HTTP 版本信息 。

( 2 )请求首部字段 。

( 3 )请求内容实体 。

响应报文包含 3 部分 。

( 1 )状态行,包含 HTTP 版本、状态码、状态码的原因短语 。

( 2 )响应首部字段 。

( 3 )响应内容实体 。

10. .:..: HTTP 中有哪些请求方式?

品:( 1 ) GET:请求访问已经被 U阳(统一资源标识符)识别的资源,可以通过 URL,

给服务器传递参数数据 。

( 2) POST:传输信息给服务器,主要功能与 GET 方法类似,但传递的数据量通常

不受限制 。

( 3) PUT : 传输文件,报文主体中包含文件内容,保存到对应 URI 位直 。

( 4) HEAD :获得报文首部 , 与 GET 方法类似,只是不返回报文主体, 一般用 于验

证 URI 是否有效 。

( 5) DELETE:删除文件,与 PUT 方法相反,删除对应 URI 位直的文件。

( 6) OPTIONS :查询相应 URI 支持的 HTTP 方法 。

11 . .:..: HTTP 协议中 1.0 版本规范与 1 . 1 版本规范的区别是什么?

品:在 HTTP 1.0 中,当建立连接后,客户端发送一个请求 ,服务器端返回一个信息

后就关闭连接,当浏览器下次请求的时候又要建立连接 。 显然,这种不断建立连接的方

式会造成很多问题 。

在 HTTP 1.1 中,引入了持续连接的概念 。 通过这种连接,浏览器可以在建立 一个连

接之后,发送请求并得到返回信息 , 然后继续发送请求再次等到返回信息 。 也就是说,

客户端可以连续发送多个请求,而不用等待每一个响应的到来 。

12. .:..: HTTP 的首部字段包括哪些类型?

品:( 1 )通用首部字段(请求报文与响应报文都会使用的首部字段)。它包括以下几

部分 。

• Date : 创建报文的时间 。

• Connection:连接的管理 。

• Cache - Control :缓存的控制 。

• Tran sfer-Encoding:报文主体的传输编码方式 。

( 2 )请求首部字段(请求报文会使用的首部字段)。 它包括以 下 几部分 。

• Host:请求资源所在服务器 。

• Accept:可处理的媒体类型 。

• Accept-Charset : 可接受的字符集 。

• Accept-Encoding:可接受的内容编码 。

• Accept-Language:可接受的自然语言。

( 3 )响应首部字段(响应报文会使用的首部字段) 。 它包括以下几部分 。

• Accept-Ran ges:可接受的字节范围 。

• Location : 令客户端重新定向到的 URI 。

• Server: HTTP 服务器的安装信 息 。

( 4 )实体首部字段(请求报文与响应报文的实体部分使用的首部字段) 。 它包括以下

几部分 。

• Allow : 资源可支持的 HTTP 方法 。

• Content-Type:实体主体的类型 。

• Content-Encoding : 实体主体使用的编码方式。

• Content-Language:实体主体的自然语言 。

• Content-Length : 实体主体的字节数 。

• Content-Range:实体主体的位置范围, 一般用 于发出部分请求时使用 。

13. 4:与 HTTPS 相比, HTTP 有什么缺点?

品: HTTP 的缺点如下 。

( 1 ) 通信使用明文 , 不加 密, 内 容可能被窃听 , 也就是被抓 包分析 。

( 2 )不验证通信方身份 , 可能遭到伪装 。

( 3 )无法验证报文完整性 , 可能被篡改 。

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

14. :..:如何优化 HTTP 请求?

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

15. :. :村TTP 协议有哪些特征?

品: 支持客户端/月民务器模式,简单快速,灵活,无连接,无状态。

16. ..7..: HTTP 1.1 版本的新特性有哪些?

品: 新特性如 下 所示 。

( 1 )默认持久连接,节省通信量,只要客户端 /服务端 中 任意 一端没有明确指出断开

TCP 连接,就一 直保持连接,可以多次发送 HTTP 请求 。

( 2 ) 管线化 ,客户端 可以同时发出多个 HTTP 请求,而不用一个个等待响应 。

( 3 ) 断点续传原理 。

17. 4:说说 TCP 传输的三次握手 、 四 次挥手策略 。

马:为了准确无误地把数据送达目标处, TCP 采用了二 次握手 策略 。 用 TCP 把数据

包发送 出去后 , TCP 不会对传送后的数据置之不理,它 一定会向对方确认是否成功送达 。

握手过程中使用了 TCP 的标志,即 SYN 和 ACK 。

发送端首先给接收端发送一个带 SYN 标志的数据包 。 接收端收到后,回传一个带有

SYN/ACK 标志的数据包以表示正确传达,并确认信息 。 最后,发送端再回传 一 个带 ACK

标志的数据 包 ,代表“握手”结束 。 若在握手过程中的某个阶段莫名中断, TCP 会再次

仅供非商业用途或交流学习佼用

以相同的顺序友送相同的数据包 。

断开一个 TCP 连才妾则需要“四次握手

. 第 一次握手:主动关闭方友送一个 FIN ,用来关闭 主动关闭方到 被动关闭方 的 数

据传送, 也就是主动 关闭 方告诉被动关 闭方 , 主动关 闭方已经不会再给被动关 闭方友送

数据了 (当 然,在 FIN 包之前发送出去的 数据,如果没有收到对应的 ACK 确认报文,

主动关闭方依然会重发这些数据),但是,此时 主动关 闭 方还可以接收数据 。

• 第 二次握 手: 被动关闭方收到 FIN 包后, 给对方发送一个 ACK,确认序号为收

到序号+] (与 SYN 相同,一个 FIN 占用一个序号) 。

• 第 二次握手 : 被动关闭方发送一个 FIN,用来关闭被动关闭方到 主动关闭方的 数

据传送,也就是告诉主动关闭方,被动关闭方的数据也发送完了,不会再给主动关闭方

友送数据了 。

• 第四次握手:主动关闭方收到 FIN 后 , 给被动关闭方发送一个 ACK,确认序号

为收到序号 + I ,至此, 完成四次握手 。

18. :. :说说 TCP 和 UDP 的 区别 。

品: TCP (Transmission Control Protocol ,传输控制协议)是基于连接的协议, 也就

是说,在正式收发数据前,必须和对方建立可靠的连接 。 一个 TCP 连接必须要经过 3 次

“对话”才能建立起来 。

UDP (User Datagram Protocol , 用尸数据报协议)是与 TCP 相对应的协议 。 它 是面

向非连接的协议,它不与对方建立连接,而是直接就把数据 包发送过去 。 UDP 适用于 一

次只传送少量数据、对可靠性要求不高的应用环境 。

19. :.:一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

马: 整个过程可分为 4 个步骤 。

( I )当发送一个 URL 请求时,不 管 这个 URL 是 Web 页面的 URL 还是 Web 页面上

每个资源的 URL , 浏览器都会开启 一个线程来处理这个请求,同时在远程 DNS 服务器

土启动 一个 DNS 查询 。 这能使浏览器获得请求对应的 IP 地址 。

( 2 )浏览器与远程 Web 服务器通过 TCP 二次握手协 商来建立 一个 TCP/IP 连接 。 该

握手包括一个同步报文、 一个同步 -应 答报文和一个应答报文 ,这 3 个报文在浏览器和服

务器之间传递 。 该握手首先由客户 端尝试建立起通信 , 然后服务器应答并接受客户端的

请求,最后由客户端友出已经接受该请求 的报文 。

( 3 )一旦 TCP/IP 连接建立,浏览器会通过该连接向远程服务器发送 HTTP 的 GET

请求 。 远程服务器找到资源并使用 HTTP 响应返回该资源,值为 200 的 HTTP 响应状态

码表示一个正确的响应 。

( 4 )此时 Web 服务器提供资源服务,客户端开始下载资源 。 请求返回后,使进入了

浏览器端模块 。 浏览器会解析 HTML 生成 DOM Tree,其次会根据 css 生成 css 规则树,

而 JavaScript 又可以根据 DOMAPI 操作 DOM 。

20. .:..:网络分层模型有哪七层?

品:七层分别是应用( Application )层、表示( Presentation )层、会话( Session )层、

传输( Transport )层、 网络( Network )层、数据链路( Link )层和物理( Physical )层 。

每一层的作用如下 。

. 应用层:九许访问 OSI 环境的手段 。

• 表示层 : 对数据进行翻译、加密和压缩 。

. 会话层- 建立、管理和终止会话 。

• 传输层 : 提供端到端的可靠报文传递和错误恢复 。

. 网络层:负责数据包从源到宿的传递和网际王联 。

• 数据链路层 : 将比特组装成帧并实现点到点的传递 。

. 物理层:通过媒介传输比特,确定机械及电气规范 。

21 . 4:网络七层模型中,你所熟知的协议有哪些?

品:有以下几种协议 。

• ICMP ,即因特网控制报文协议 。 它是 TCP/IP 协议族的一个子协议,用于在 IP

主机、路由 器之间传递控制消息 。

• TFTP ,即 TCP/IP 协议族中一个用来在客户机与服务器之间进行简单文件传输的

协议,提供不复杂、开销不大的文件传输服务 。

• HTTP ,即超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、

快速的方式,适用于分布式超媒体信息系统 。

• DHCP ,即动态主机自己置协议,是一种让系 统得以连接到网络并获取所需要配直

参数的手段 。

22. :.. :讲讲 304 缓存的原理 。

品: 服务器首先为请求生成 ETag,服务器可在稍后的请求中,使用它来判断页面是否已

经修改。 本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)是否缓存 。

304 是 HTTP 状态码,服务器用它来标识这个文件没有修改,不返回内容,浏览器

在接收到个状态码后,会使用浏 览器已缓存的文件 。

客户端请求页面 A 。 服务器返回页面 A,并给 A 加上一个 ETag 。 客户端展现该页面,

并将页面连同 ETag 一起缓存 。 客户端再次请求页面 A,并将上次请求时服务器返回的 ETag

一起传递给服务器 。服务器检查该 ET吨,并判断出该页面自上次客户端请求之后还未被

修改,直接返回响应 304 (未修改一- Not Modified )和一个空的响应体。

23. .:.. :什么是 Etag?

品:当发送一个服务器请求时,浏览器首先会进行缓存过期判断 。浏览器根据缓存

过期时间判断缓存文件是否过期 。

若没有过期,则不向服务器发送请求,直接使用缓存中的结果 。 此时,我们在浏览

器控制台中可以看到 200 OK ( from cache ),这种情况就是完全使用缓存,浏览器和服务

器没有任何交互 。

若己过期,则向服务器发送请求。此时,请求中会带上文件修改时间和 Et吨,然后,

进行资源更新判断。

服务器根据浏览器传过来的文件修改时间,判断自浏览器上一次请求之后,文件是

否被修改过。根据 Et吨,判断文件内容自上一次请求之后,有没有发生变化。

若两种判断的结论都是文件没有被修改过,服务器就不给浏览器发送新的内容,而

是直接告诉浏览器,文件没有被修改过,可以继续使用缓存一- 304 Not Modified 。 此时,

浏览器就会从本地缓存中获取请求资源的内容,这种情况叫协议缓存,浏览器和服务器

之间有一次请求交王 。

若修改时间或文件内容判断中有任意 一个没有通过,则服务器会受理此次请求,并

仅供非商业用途或交流学习佼用

返回新的数据 。

注意,只有 get 请求会被缓存, post 请求不会 。

24. .:..:说说 ETag 的应用 。

品: Etag 由服务器端生成,客户端通过 If-Match 或者 If-None-Match 这个条件判断

请求来验证资源是否修改 。 常见的是使用 If-None-Match 。 请求一个文件的流程如下 。

第一次请求时,客户端发起 HTTP GET 请求,以获取一个文件,服务器处理请求,

返回文件内容和请求头(包括 Etag ),并返回状态码 200 。

第二次请求时,客户端发起 HTTP GET 请求,以获取一个文件 。 注意,这个时候客户

端同时发送一个 If-None-Match 头 , 这个头的内容就是第一次请求时服务器返回的 Etag .

服务器判断发送过来的 Etag 和计算出来的 Etag 是否匹配 。 如果 If-None-Match 为 False,

不返回 200 ,返回 304 ,客户端继续使用本地缓存 。 如果服务器设直了 Cache-Control:max-age

和 Expires ,服务器端在完全匹配 If-Modified-Since 和 If-None-Match 后,即检查完修改时

间和 Etag 之后,才能返回 304 。

25. .7.: Expi 「es 和 Cache-Cont「o l 的作用是什么?

品; Expires 要求客户 端和服务器端 的时间严格同步 。 HTTP 1.1 引入 Cache-Contro l来克服 Expire s 头的限制 。 如果 max-age 和 Expires 同时出现,则 max -age 有更高的优先级 。

具体代码如下所示 。

Cache-Control: no - cache, private, max - age=O

ETag:”8b4 c - 5 5fl 6e2e30 0 0 0”

Expires : Thu , 02 Dec 2027 11:37 : 56 GMT

Last-Modified : Wed , 29 Nov 2017 03 : 39 : 44 GMT

26. .:. :什么是反向代理?

品:反向代理( Reverse Proxy )是指通过代理服务器来接收王联网上的连接请求,

然后将请求转发给内部网络上的服务器,并把从服务器上得到的结果返回给王联网上请

求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器 。


分享到:
相关推荐
暂无相关推荐
微信公众号
手机浏览

Copyright © 2019 All Rights Reserved 版权所有 豫商人才网 豫ICP备19004769 豫公网安备号:41140302000096

地址:河南省商丘市睢阳区神火大道176号联合大厦13楼 EMAIL:postmaster@37jobs.com

用微信扫一扫