博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【面试准备·3】网络相关
阅读量:6232 次
发布时间:2019-06-22

本文共 2480 字,大约阅读时间需要 8 分钟。

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

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 三次握手和四次挥手

什么是 HTTP

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

HTTP 状态码

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

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

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

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

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

HTTP 请求方式

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

POSTGET 区别?

HTTP1 和 HTTP2 区别

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

强缓存与协商缓存

关键词: Expires/Cache-Controlpublic/privateno-store/no-cacheLast-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 在浏览器和服务器间来回传递。而 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 获取用户信息。

跨域问题

(再看一遍觉得阮一峰老师写的真好……

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

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

转载于:https://juejin.im/post/5c8cbca8f265da2deb6af244

你可能感兴趣的文章
C# 生成等比缩略图的类
查看>>
安利 : プログラミングで彼女をつくる 全攻略~
查看>>
1022. Digital Library (30)
查看>>
Canvas入门(2):图形渐变和图像形变换
查看>>
DataAccess通用数据库访问类,简单易用,功能强悍
查看>>
启动MYSQL密码审计插件
查看>>
spring的事务操作
查看>>
Extensions for Spatial Data
查看>>
Hadoop HDFS 用户指南
查看>>
primefaces 查询 点击按钮 加载 动画 ajax loader
查看>>
Java单例模式——并非看起来那么简单
查看>>
curl库pycurl实例及参数详解
查看>>
actor中!(tell)与forward的差别
查看>>
Android - Activity定制横屏(landscape)显示
查看>>
SQL中 EXCEPT、INTERSECT用法
查看>>
基于Token的WEB后台认证机制
查看>>
[Python] Reuse Code in Multiple Projects with Python Modules
查看>>
026——VUE中事件修饰符之使用$event与$prevent修饰符操作表单
查看>>
dynamic web module讲解
查看>>
C# 过滤特殊字符,保留中文,字母,数字,和-
查看>>