【27】C++岗位求职面试八股文第二十七篇(计算机网络)

系列文章目录

第一篇:语言基础

第二篇:设计模式

第三篇:数据库

第四篇:计算机网络

第五篇:操作系统

第六篇:LInux

第七篇:数据结构

第八篇:智力题

[61]https优缺点

加密:

验证流程:

[62]数字证书CA

[63]说说 HTTP 中的 referer 头的作用

1.HTTP Referer是header的一部分,(里面是请求链接)当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理2.防盗链。将这个http请求发给服务器后,如果服务器要求必须是某个地址或者某几个地址才能访问,而你发送的referer不符合他的要求,就会拦截或者跳转到他要求的地址,然后再通过这个地址进行访问。3. 防止恶意请求静态请求是*.html结尾的,动态请求是*.shtml,那么由此可以这么用,所有的*.shtml请求,必须Referer为我自己的网站。4.空Referer定义:Referer头部的内容为空,或者,一个HTTP请求中根本不包含Referer头部(一个请求并不是由链接触发产生的),比如浏览器直接访问。5.防御CSRF比对HTTP 请求的来源地址,如果Referer中的地址是安全可信任的地址,那么就放行

[64] HTTP 的方法有哪些

GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。OPTIONS:查询相应URI支持的HTTP方法。

[65]http1.1缺点及优化手段

优化手段:http2:1头部压缩hpack2数据流stream(指定优先级,编号)3多路复用(一旦丢包,阻塞所有请求)4二进制格式(头信息帧、数据帧),加快了数据传输效率5服务器推送

管道传输:,http1.1只要第⼀个请求发出去了,不必等其回来,就可以发第⼆个请求出去,可以 减少整体的响应时间;但是一个阻塞,所有都阻塞。只有处理完上一个,才能处理下一个。

多路复用:http2以在⼀个连接中并发多个请求或回应,⽽不⽤按照顺序⼀⼀对应。,在⼀个 TCP 连接⾥,服务器收到了客户端 A 和 B 的两个请求,如果发现 A 处理过程⾮常耗时,于是就 回应 A 请求已经处理好的部分,接着回应 B 请求,完成后,再回应 A 请求剩下的部分。

[66]简述 HTTP 1.0,1.1,2.0 的主要区别

http/1.0 :默认不支持长连接,需要设置keep-alive参数指定强缓存expired、协商缓存last-modified\if-modified-since 有一定的缺陷

http 1.1 :默认长连接(keep-alive),http请求可以复用Tcp连接,但是同一时间只能对应一个http请求(http请求在一个Tcp中是串行的)增加了强缓存cache-control、协商缓存etag\if-none-match 是对http/1 缓存的优化HTTP1.1 基于请求-响应模型。同⼀个连接中,HTTP完成⼀个事务(请求与响应),才能处 理下⼀个事务。即:再发出请求等待响应的过程种是没办法做其他事情的,会造成【队头阻 塞】问题。

http/2.0 :多路复用,一个Tcp中多个http请求是并行的 (雪碧图、多域名散列等优化手段http/2中将变得多余)二进制格式编码传输使用HPACK算法做header压缩 HTTP2头部的编码通过【静态表、动态表、Huffman编码】共同完成服务端推送HTTP2通过Stream这个设计(多个Stream复⽤⼀条TCP连接,达到并发的效果),提⾼了HTTP传输的吞吐ᰁ。并没有解决队头阻塞问题

[67]http2

[68]http3:

无堆头阻塞、更快的连接、连接迁移

左边http2.0 TCP 和 TLS 是分层的, 3RTT

右边http3.0 是QUIC 内部包含了 TLS 0RTT

[69]HTTP如何禁⽤缓存?如何确认缓存?

HTTP/1.1 通过 Cache-Control ⾸部字段来控制缓存。(1)禁⽌进⾏缓存 no-store 指令规定不能对请求或响应的任何⼀部分进⾏缓存。(2)强制确认缓存 no-cache 指令规定缓存服务器需要先向源服务器验证缓存资源的有效性,只有当缓存资源有 效时才能使⽤该缓存对客户端的请求进⾏响应。缓存中的私有公有字段:Cache-Control:private [将资源作为私有缓存,只能被单独⽤户使⽤,⼀般存储在⽤户浏览器 中]/public[将资源作为公共缓存,可以被多个⽤户使⽤,⼀般存储在代理服务器中]

[70]http如何保持长连接、短连接

HTTP 长连接,也称持久连接(HTTP persistent connection / HTTP keep-alive / HTTP connection reuse),是使用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,而不是为每个新的请求/应答打开新的 TCP 连接。这种方式下由于通讯连接一直存在,此种方式常用于 P2P 通信。HTTP 短连接,浏览器和服务器每进行一次 HTTP 操作,就会建立一次连接,但任务结束后就中断连接,不会像长连接那样保持连接。此方式常用于一点对多点通讯,C/S 通信。

长连接的操作步骤是:建立连接 — — 数据传输 — — 保持连接(心跳) — — 数据传输 — — 保持连接(心跳)… — — 关闭连接

短连接的操作步骤是:建立连接 — — 数据传输 — — 关闭连接…建立连接 — — 数据传输 — — 关闭连接

设置 HTTP 短连接:  在应答报文头中设置 Connection:close,则在一次请求/响应之后,就会关闭连接

设置 HTTP 长连接,无过期时间:  在应答报文头中只设置 Connection:keep-alive,表明连接永久有效。

设置 HTTP 长连接,有过期时间:  在应答报文头中设置 Connection:keep-alive 和 Keep-Alive: timeout=60,

[续]C++岗位求职面试八股文第二十八篇(计算机网络)

更多关于算法题解、软件开发面经、机器学习算法面经、各企业面试问题记录,关注Fintech砖,持续更新中。https://www.nowcoder.com/users/873777317

企业面试记录专栏https://www.nowcoder.com/creation/manager/columnDetail/0YBWnm

机器学习面经专栏https://www.nowcoder.com/creation/manager/columnDetail/j8nNy0

软件开发面经专栏https://www.nowcoder.com/creation/manager/columnDetail/0aXKaM

更多校园招聘常见面试问题(开发、算法、编程题目)参见CSDN博客:http://t.csdn.cn/V4qbH

欢迎关注、收藏、点赞后进行问题咨询及秋招建议

#晒一晒我的offer##我的实习求职记录##软件开发薪资爆料##实习,投递多份简历没人回复怎么办##互联网没坑了,还能去哪里?#
软件开发八股面经 文章被收录于专栏

包含C++、操作系统、数据库、计算机组成、计算机网络、设计模式、操作系统、牛客网服务器项目、综合智力题等

全部评论

相关推荐

点赞 评论 收藏
分享
浩浩没烦恼:一二面加起来才一个小时? 我一面就一个小时多了
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务