【面试准备·3】网络相关

既是拾人牙慧,部分问题就直接放我认为比较优秀的文章连接了,仅供参考。若是您发现错误,请必定要告诉我,拯救一个辣鸡(但很帅)的少年就靠您了!html

TCP 和 UDP

TCP和UDP的优缺点及区别前端

  1. TCP 面向链接,UDP 是无链接的,即发送数据以前不须要创建链接。算法

  2. TCP 提供可靠的服务。也就是说,经过TCP链接传送的数据,无差错,不丢失,不重复,且按序到达;UDP 尽最大努力交付,即不保证可靠交付。数据库

  3. TCP 面向字节流,其实是 TCP 把数据当作一连串无结构的字节流;UDP 是面向报文的。UDP 没有拥塞控制,所以网络出现拥塞不会使源主机的发送速率下降(对实时应用颇有用,如 IP 电话,实时视频会议等)。跨域

  4. 每一条 TCP 链接只能是点到点的;UDP 支持一对一,一对多,多对一和多对多的交互通讯。浏览器

  5. TCP 首部开销 20 字节;UDP 的首部开销小,只有 8 个字节。缓存

  6. TCP 的逻辑通讯信道是全双工的可靠信道,UDP则是不可靠信道。安全

TCP 三次握手和四次挥手

TCP没那么难吧?服务器

什么是 HTTP

超文本传输协议(HyperText Transfer Protocol,HTTP)是一种用于分布式、协做式和超媒体信息系统的应用层协议。HTTP是万维网的数据通讯的基础。cookie

HTTP 状态码

1xx:消息,请求已被服务器接收,继续处理

2xx:成功,请求已成功被服务器接收、理解、并接受

3xx:重定向,须要后续操做才能完成这一请求

4xx:请求错误,请求含有词法错误或者没法被执行

5xx:服务器错误,服务器在处理某个正确请求时发生错误

HTTP 请求方式

OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE

POSTGET 区别?

HTTP1 和 HTTP2 区别

HTTP1.0、HTTP1.1和HTTP2.0的区别

  • 采用二进制格式(Binary Format)
  • 多路复用(MultiPlexing)
  • header 压缩
  • 服务端推送(server push)

强缓存与协商缓存

前端优化:浏览器缓存技术介绍

关键词: Expires/Cache-Controlpublic/privateno-store/no-cacheLast-Modified/Etag

什么是 HTTPS?

两个感性的小故事:HTTPS 的故事一个故事讲完https

HTTPS 是 HTTP 的安全版,即 HTTP 下加入 SSL 层。

SSL 协议位于 TCP/IP 协议与各类应用层协议之间,为数据通信提供安全支持。

SSL协议可分为两层:

SSL 记录协议(SSL Record Protocol):它创建在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

SSL 握手协议(SSL Handshake Protocol):它创建在 SSL 记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等。

HTTP 和 HTTPS 区别

  • HTTPS 协议须要到 CA 申请证书,通常免费证书不多,须要交费。
  • HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具备安全性的 SSL 加密传输协议。
  • HTTP 和 HTTPS 使用的是彻底不一样的链接方式,用的端口也不同,前者是80,后者是443。
  • HTTP 的链接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。

Cookie、sessionStorage、localStorage、IndexDB

  • Cookie 数据始终在同源的 HTTP 请求中携带(即便不须要),即 Cookie 在浏览器和服务器间来回传递。而 sessionStoragelocalStorage 不会自动把数据发给服务器,仅在本地保存。Cookie 数据还有路径(path)的概念,能够限制 Cookie 只属于某个路径下,存储的大小很小只有4K左右。

  • sessionStorage 仅在当前浏览器窗口关闭前有效,localStorage始终有效,窗口或浏览器关闭也一直保存,所以用做持久数据,Cookie 只在设置的 Cookie 过时时间以前一直有效,即便窗口或浏览器关闭。

  • localStorageCookie 在全部同源窗口中都是共享的。可是不一样页面或标签页间没法共享 sessionStorage 的信息。

  • IndexDB 是一个运行在浏览器上的非关系型数据库。理论上来讲,IndexDB 是没有存储上限的(通常来讲不会小于 250M)。它不只能够存储字符串,还能够存储二进制数据。

如何保持登陆状态

由于 HTTP 是无状态协议,每一次请求间相互独立,服务端不会记住请求发送请求的客户端。

浅显的理解三种方式,cookie、session 和 token 。

  1. cookie 存储用户信息。缺点不安全,容易被伪造。

  2. session 是服务端会记录用户信息,并经过 session id 来标识查找这个信息。浏览器发送请求时经过参数或 cookie 将 session id 传给服务端使其获取用户信息。

  3. token 是用户登陆后,服务端生成一个 token 返回给客户端。客户端后续请求会带上这个 token ,能够经过 cookie 或 header 中 Authorization 字段(没有 cookie 的跨域问题),服务端解析 token 获取用户信息。

跨域问题

(再看一遍以为阮一峰老师写的真好……

浏览器同源政策及其规避方法

跨域资源共享 CORS 详解

从输入 URL 到页面加载完成,发生了什么?

  1. DNS 解析
    域名解析为 IP 地址,浏览器缓存-->操做系统缓存-->访问 DNS 服务器
  2. TCP 链接
    三次握手、四次挥手
  3. HTTP 请求
    强缓存、协商缓存
  4. 服务端处理请求,HTTP 响应返回
    返回码
  5. 浏览器拿到响应数据,解析响应内容,把解析的结果展现给用户 DOM树、CSSOM树、Render树、回流、重绘
相关文章
相关标签/搜索