前端面试之网络篇

前方指路:
手写代码题:github
前端面试之JavaScript篇
前端面试之ES6篇
前端面试之HTML&CSS篇
前端面试之网络篇
前端面试之浏览器篇
前端面试之webpack篇
前端面试之vue篇
前端面试之性能优化篇

目录

  • cookie有哪些字段
  • http和https的区别,TLS握手的过程
  • http2
  • DNS(域名)解析步骤与原理
  • 域名发散和域名收敛
  • 跨域问题
    • 解决跨域的方案
    • 简单请求和复杂请求
    • 优化OPTIONS请求
    • postMessage可以解决的问题
  • XSS和CSRF攻击
    • XSS
    • CSRF
    • XSS攻击,Cookie相关的字段,HttpOnly
    • CSRF攻击,Cookie的SameSite字段
  • 常见状态码及含义
  • fetch和ajax的区别
  • TCP三次握手/四次挥手
    • 三次握手
    • 四次挥手
  • TCP的流量控制和拥塞控制
    • 流量控制
    • 拥塞控制
  • TCP和UDP
  • WebSocket

cookie有哪些字段

name:名称

value:值

domain:可以访问此cookie的域名

path:可以访问此cookie的页面路径

expires/Max-Age:此cookie超时时间。不设置的话默认值是Session,意思是cookie会和Session一起失效。当浏览器关闭(不是浏览器标签页,而是整个浏览器) 后,此cookie失效。

Size:此cookie大小

http字段:cookie的httponly属性。若为true,则只有在http请求头中会带有此cookie的信息,而不能通过document.cookie来访问此cookie(可以一定程度上地防止信息盗取)。

secure字段:设置是否只能通过https来传递此条cookie

http和https的区别,TLS握手的过程

这个是高频考点。

http+加密+认证+完整性保护 就得到https,而这些是通过SSL/TLS层实现的。

避免中间人攻击。

前端面试之网络篇_第1张图片

下面这个图是我在《图解HTTP》中截取的。

前端面试之网络篇_第2张图片

http2

目标:改善用户在使用Web时的速度体验。

主要基于SPDY协议。它是Google开发的基于TCP协议的应用层协议。目标是优化HTTP协议的性能,通过压缩、多路复用和优先级 等技术,缩短网页的加载时间并提高安全性。SPDY协议的核心思想是尽量减少TCP连接数。SPDY并不是一种用于替代HTTP的协议,而是对HTTP协议的增强。

特点:

  1. 二进制传输:二进制帧层,指HTTP消息在客户端和服务端如何封装和传输。与HTTP1.x的采用的换行符分隔文本不同,HTTP/2 消息被分成很小的消息和frame,然后每个消息和frame用二进制编码。

  2. 多路复用:所谓多路复用,即在一个TCP连接中存在多个流,即可以同时发送多个请求。在客户端帧乱序发送,到对端后再根据每个帧首部的流标识符重新组装。

  3. Header压缩:使用 HPACK(HTTP2头部压缩算法)压缩格式对传输的header进行编码。并在两端维护了索引表,用于记录出现过的header,后面在传输过程中就可以传输已经记录过的header的键名,对端收到数据后就可以通过键名找到对应的值。

  4. 服务器推送:在 HTTP2.0 中,服务端可以在客户端某个请求后,主动推送其他资源。

DNS(域名)解析步骤与原理

域名 -> IP地址

TTL:域名解析信息在DNS中的存在时间

  1. 浏览器自身缓存查找,域名被缓存的时间也可通过TTL属性来设置

  2. 操作系统缓存查找(C盘hosts 只读)

  3. 请求本地域名服务器Local DNS Server(80%找到)

  4. 请求Root DNS,返回gTLD Server(国际顶尖域名服务器)给LDNS,LDNS请求gTLD,gTLD查找并返回域名对应的Name Server地址(网站注册的域名服务器)

  5. Name Server根据映射关系表找到目标ip,返回给LDNS

  6. LDNS缓存这个域名和对应的ip

  7. LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束

域名发散和域名收敛

域名发散:PC 时代对静态资源优化时,通常将静态资源分布在几个不同域,保证资源最完美地分域名存储,以提供最大并行度,让客户端加载静态资源更为迅速。

域名收敛:移动端减少DNS解析时间

跨域问题

基于同源策略。当协议、域名、端口至少有一个不一致时就会发生跨域。

同源策略限制的内容有:

  • cookie、localStorage、sessionStorage、indexedDB等存储型内容
  • DOM节点
  • ajax请求

允许跨域加载资源的标签:

你可能感兴趣的:(面试,面试,web,前端,网络)