既是拾人牙慧,部分问题就直接放我认为比较优秀的文章链接了,仅供参考。如果您发现错误,请一定要告诉我,拯救一个辣鸡(但很帅)的少年就靠您了!
TCP 和 UDP
-
TCP 面向连接,UDP 是无连接的,即发送数据之前不需要建立连接。
-
TCP 提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP 尽最大努力交付,即不保证可靠交付。
-
TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构的字节流;UDP 是面向报文的。UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 IP 电话,实时视频会议等)。
-
每一条 TCP 连接只能是点到点的;UDP 支持一对一,一对多,多对一和多对多的交互通信。
-
TCP 首部开销 20 字节;UDP 的首部开销小,只有 8 个字节。
-
TCP 的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。
TCP 三次握手和四次挥手
什么是 HTTP
超文本传输协议(HyperText Transfer Protocol,HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
HTTP 状态码
1xx:消息,请求已被服务器接收,继续处理
2xx:成功,请求已成功被服务器接收、理解、并接受
3xx:重定向,需要后续操作才能完成这一请求
4xx:请求错误,请求含有词法错误或者无法被执行
5xx:服务器错误,服务器在处理某个正确请求时发生错误
HTTP 请求方式
OPTIONS
, GET
, HEAD
, POST
, PUT
, DELETE
, TRACE
等
POST
和 GET
区别?
HTTP1 和 HTTP2 区别
- 采用二进制格式(Binary Format)
- 多路复用(MultiPlexing)
- header 压缩
- 服务端推送(server push)
强缓存与协商缓存
关键词: Expires/Cache-Control
、public/private
、no-store/no-cache
、Last-Modified/Etag
什么是 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
在浏览器和服务器间来回传递。而sessionStorage
和localStorage
不会自动把数据发给服务器,仅在本地保存。Cookie
数据还有路径(path)的概念,可以限制Cookie
只属于某个路径下,存储的大小很小只有4K左右。 -
sessionStorage
仅在当前浏览器窗口关闭前有效,localStorage
始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据,Cookie
只在设置的Cookie
过期时间之前一直有效,即使窗口或浏览器关闭。 -
localStorage
和Cookie
在所有同源窗口中都是共享的。但是不同页面或标签页间无法共享sessionStorage
的信息。 -
IndexDB
是一个运行在浏览器上的非关系型数据库。理论上来说,IndexDB
是没有存储上限的(一般来说不会小于 250M)。它不仅可以存储字符串,还可以存储二进制数据。
如何保持登录状态
因为 HTTP 是无状态协议,每一次请求间相互独立,服务端不会记住请求发送请求的客户端。
浅显的理解三种方式,cookie、session 和 token 。
-
cookie 存储用户信息。缺点不安全,容易被伪造。
-
session 是服务端会记录用户信息,并通过 session id 来标识查找这个信息。浏览器发送请求时通过参数或 cookie 将 session id 传给服务端使其获取用户信息。
-
token 是用户登录后,服务端生成一个 token 返回给客户端。客户端后续请求会带上这个 token ,可以通过 cookie 或 header 中 Authorization 字段(没有 cookie 的跨域问题),服务端解析 token 获取用户信息。
跨域问题
(再看一遍觉得阮一峰老师写的真好……
从输入 URL 到页面加载完成,发生了什么?
- DNS 解析 域名解析为 IP 地址,浏览器缓存-->操作系统缓存-->访问 DNS 服务器
- TCP 连接 三次握手、四次挥手
- HTTP 请求 强缓存、协商缓存
- 服务端处理请求,HTTP 响应返回 返回码
- 浏览器拿到响应数据,解析响应内容,把解析的结果展示给用户 DOM树、CSSOM树、Render树、回流、重绘