网络面试题
# 网络面试题
# 1.http/https 问题
http 和 https 区别
http1.0、1.1、2.0、3.0 协议的区别
http 请求是怎么组成的
说说 HTTP 常见的请求头有哪些? 作用?
一个 http 的报文的头和 body 之间有什么分隔
Cache-control 有几个属性?
页面 10 张 img,http1 是怎样的加载表现,怎么解决。那多域名又为什么可以解决呢。http2 是怎样表现
http2 的多路复用是什么原理,头部压缩的原理是什么
http2 都有哪些应用,多路复用和 1.1 版本 keep-alive 有什么区别和联系,如果 http1.1 服务端需要按顺序处理请求,那为什么有的时候在一个页面里看图片,有时下面的图片会先出来,
为什么要有 帧 这个概念?
http pipeline 有了解吗,http 流传输有了解吗
- http1.1 相关,pipline 可以完全解决发送队列队首阻塞的问题吗(不会)
管道机制会造成什么样的问题,http2.0 是怎么解决的
http2.0 允许服务器主动推送消息,那跟 WebSocket 有什么区别吗?
- http2.0,如何实现多路复用,服务端推送和 websocket 的区别
http 强行使用 udp 能实现吗?
介绍下 http2.0 及优缺点
https 问题:
为什么说 HTTPS 比 HTTP 安全? HTTPS 是如何保证安全的?
简单讲讲 SSL 的协议?
ssl 握手过程,非对称加密和对称加密的区别
了解证书颁发的流程吗?
https 数据传输流程
https 如果没有证书会加密吗?怎么加密的?
为什么 https 可以防中间人攻击
都说要减少 https 的请求,https 为什么慢 ?
https 有几次握手
问了一下 HTTPS 抓包能看到什么,HTTPS 能看到 ip 地址吗?
CA 证书在 HTTPS 中起到了一个什么作用?
CA 证书参与到 HTTPS 中的加密过程了吗?HTTPS 需要对 CA 证书进行加解密吗?
http3 问题:
了解 http3 的 quic 吗
quic 怎么解决了 tcp 的问题
quic 用 udp 怎么保证了可靠性
quic 的 udp 如果不握手,人家随便发请求怎么办(滑动窗口、bbr 拥塞算法)
# 2.状态码问题
说说 HTTP 常见的状态码有哪些,适用场景?
永久性重定向(301)和临时性重定向(302)区别及应用场景,对 SEO 有什么影响
常见的 http 状态码,206 知道么
状态码 304 过程,403,404 是什么?在浏览中发生了什么?
http 状态码 204 301 302 304 400 401 403 404 含义
说一说 http 状态码 400 和 502 的含义?
响应状态码,200(from disk cache),200(from memory cache),304 的区别。
# 3.TCP/UDP 问题
- TCP 三次握手和四次挥手
讲下 TCP 三次握手和四次挥手的过程?稍微详细些
追问:TCP 为什么要三次握手?可不可以两次握手,
握手为什么要三次?万一第三次没有发出去呢?
第三次握手发送方是否可以携带信息
服务器怎么识别握手是同一个客户端的
TCP 与 UDP 有什么区别?应用场景?
TCP 怎么保证对方一定能收到包?如果遇到网络拥塞的状况怎么办?
TCP 的滑动窗口是什么意思?
tcp 包有什么内容
HTTP 请求和 TCP 链接的对应关系
tcp 拥塞控制和流量控制
听说过 SPDY 么?
tcp 可以建立多个连接吗?
TCP 有哪些手段保证可靠交付
tcp 握手结束第一次的包有多大
TCP 的超时重传,tcp 拥塞控制(四部分)
TCP 如何去终止之前发送报文的?
在 TCP 建立连接后,路由器发生了什么变化
UDP 问题
- quic 基于 udp 怎么保证可靠性?
# 4.缓存问题
- 讲一下 HTTP 缓存,缓存的优先级
追问:200 状态码一定是服务器返回的吗?
追问:Expires 和 Cache-Control 的 max-age 指令分别是如何确定过期时间的?优劣势是什么?
追问:为什么有了 Last-Modified 还要有 ETag?解决了什么问题? ETag 是这个字符串是怎么生成的
如果 http 响应头中 ETag 值改变了,是否意味着文件内容一定已经更改
追问:no-store 和 no-cache 的意思分别是什么?
强缓存和协商缓存,什么情况下会用到协商缓存?
介绍一下浏览器的页面缓存机制?
浏览器缓存的类别与优先级 ?可以拓展一下,结合 webpack 如何命中缓存
后端配置缓存和 html meta 标签配置缓存的区别
Cache-control 与 expires 的区别,为什么 cache-control 优先级更高
http 缓存更新静态文件的方式
浏览器卡顿,你怎么去排除?(服务器到后台都讲了一遍,他告诉我如果数据没问题,是浏览器的问题怎么排除,我说了代码中打断点调试,他不满意,说我 Chrome 的调试工具台掌握很不好)
缓存问题,Etag 和 IF-modify-since 是怎么来的? Etag 具体生成方式
如果要你缓存图片你怎么做?
html、css、js 文件会放在磁盘缓存还是内存缓存
# 5.本地存储问题
本地存储的方式有哪些?区别及应用场景?
cookie,session,localstorage,sessionstorage 有什么区别;应用业务场景
哪些情况和设置,请求不会携带 cookie
web storage 和 cookie 的区别
完全不同的域名共享 localstorage 的方案:
公共服务器双工通信(比较简单暴力)、嵌套 iframe 并双向通信
localstorage 的会不会出现不同项目的 key 覆盖别人的 key 的问题,如何解决
有多台服务器,sessionid 怎么找
cookie
cookie 作用,cookie 的作用域
cookie 有哪些属性,cookie HTTP-only 、secure,cookie 的 samesite 属性;
怎么禁止 js 访问 cookie,如何保护 cookie,JS 如何设置 cookie?
如果我要跨域发送 cookie,怎么发
XMLHTTPRequest 设置哪个值自动带上 cookie
xhr.withCredentials = true;
你说说 cookie 是如何跟随请求的? Cookie 隔离是什么,如何做;
讲一讲 cookie 是怎么发送到服务端,具体过程,尽量详细
cookie 是客户端设置的还是服务端设置的?
用户在客户端禁用了 cookie,怎么办
session
说一下 session
为什么要有 session id,session id 解决什么问题?
# 6.跨域问题
说下什么是跨域问题? 讲一讲跨域的原理, 为什么要跨域,常见的跨域实现方式, 手写 JSONP 实现
跨域原因,同源策略作用,没有跨域会做什么(答了 XSS 攻击,CSRF 攻击会更容易)
JSONP 缺点,jsonp 的原理以及实现?
nginx 实现跨域,nginx 进行反向代理会有什么问题
Vue 项目中你是如何解决跨域的呢?
简述 CORS 的用途以及基本设置
cors 怎么处理
cors 头字段有哪些?cors 的返回头?有什么要注意的?
同域名端口,http 访问 https 是否是跨域
浏览器安全策略 跨域方法 CORS 怎么携带 cookie 。cookie 的 samesite 作用
同源是什么意思,除了那三个没有了么
什么是同源策略, 为什么浏览器要使用同源策略,
怎样解决的图片跨域问题
# 7.输入 URL
在浏览器搜索栏中输入一个 url,详细讲讲浏览器渲染环节会发生什么?
服务器如何定位到具体文件
# 8.前端请求问题
options 预检请求作用,简单请求和非简单请求?这个请求在跨域的时候一定会发出吗?
避免二次请求,once 函数
前端到后端请求的详细过程
说一下 GET 和 POST 的区别
get 和 options 的区别
get 发一个 tcp 包,post 发两个 tcp 包,这种情况是一定的吗,什么情况下不是这样
post 和 get 数据包发送方式
get 请求是否可以传图片
GET 和 POST 的安全性问题为什么说 POST 相对安全一些
为什么说 GET 会留下历史记录?
GET 就一定是幂等的吗?
描述以下 POST 和 PUT 的区别
token 失效问题遇到过么
ajax
说说 ajax 及其优缺点
ajax 原理是什么?如何实现?
ajax 有哪些状态,每个状态分别对应什么
axios
axios 的原理,Vue 项目中有封装过 axios 吗?主要是封装哪方面的?
axios 如何取消请求、原理
用什么方式发请求,axios 是个同构的工具,它是如何实现区分 Node 和浏览器环境的
axios 为什么既能在浏览器环境运行又能在服务器(node)环境运行?
axios 内部如何把 xhr 的 callback 转换为 promise 的,如何处理请求异常的
fetch
讲讲 fetch 和 xhr 的区别
说说 fetch,优缺点?怎么做 polyfill
fetch 并行请求与取消请求如何处理?
你了解哪些请求方法,分别有哪些作用和不同
websocket 问题
说说对 WebSocket 的理解?应用场景?websocket 握手过程?
Websocket 介绍一下,它和 http 有什么关系
简述 WebSocket 是如何进行传输的
websocket 有时会出现掉线的问题,怎么解决
WebSocket 在服务端是怎么处理消息的?
说一下 websocket 底层原理?心跳机制了解过吗?
# 9.DNS 问题
DNS 协议 是什么?说说 DNS 完整的查询过程?dns 解析流程
DNS 递归查找的弊端
DNS 解析是去哪找的缓存?
怎么找到 DNS 服务器?
DNS 怎么解析出 IP 的?DNS 解析的具体过程
解析出 ip 地址后怎么找到对方?
DNS 解析的端口号是多少,为什么采用 UDP 协议。DNS 查询用 TCP 来做可以么
DNS 解析会出错吗,为什么
dns 污染,dns 缓存
局域网内两台设备交换 ip 过程
# 10.CDN 问题
CDN 介绍,回源是什么?cdn 回源怎么做,CDN 的原理是什么?
CDN 两大核心和原理能说一下么?
怎么判断文件已失效
图片替换之后缓存问题(名称不变)
# 11.其它网络问题
OSI 七层模型
TCP/IP 四层网络模型
Charles 为什么可以劫持和更改 https 的请求,它的原理是什么?
正向代理、反向代理
说说 ip 协议
聊一聊对称加密和非对称加密
# 网络高级面试题(追问)
# 1. OSI 七层网络模型,每一层有什么作用
抓包工具抓的哪一层的包
# 2.简单讲解一下 http2 的多路复用
为什么 HTTP1.1 不能实现多路复用