TCP协议
- TCP 和 UDP 的区别?
- TCP 三次握手的过程?
- 为什么是三次而不是两次、四次?
- 三次握手过程中可以携带数据么?
- 说说 TCP 四次挥手的过程
- 为什么是四次挥手而不是三次?
- 半连接队列和 SYN Flood 攻击的关系
- 如何应对 SYN Flood 攻击?
- 介绍一下 TCP 报文头部的字段
- TCP 快速打开的原理(TFO)
- 说说TCP报文中时间戳的作用?
- TCP 的超时重传时间是如何计算的?
- TCP 的流量控制
- TCP 的拥塞控制
- 说说 Nagle 算法和延迟确认?
- 如何理解 TCP 的 keep-alive?
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
浏览器篇
- 浏览器缓存?
- 说一说浏览器的本地存储?各自优劣如何?
- 说一说从输入URL到页面呈现发生了什么?
- 谈谈你对重绘和回流的理解
- XSS攻击
- CSRF攻击
- HTTPS为什么让数据传输更安全?
- 实现事件的防抖和节流?
- 实现图片懒加载?
断开连接客户端和服务器都可以主动发起,以客户端主动发起为例
1.客户端->服务器 结束标志位FIN有效,表示客户端希望和服务器断开连接,有发送序号seq=300
2.服务器->客户端 确认标志位ACK有效,确认号ack=301,表示服务器同意客户端发送序号是300的断开连接请求,有发送序号seq=400
3.服务器->客户端 确认标志位ACK有效,确认号ack=301,表示服务器对客户端发送序号是300的断开连接请求的回应,结束标志位FIN有效,表示服务器希望和客户端断开连接,有发送序号seq>=400
4.客户端->服务器 确认标志位ACK有效,确认号ack>=401,表示客户端同意服务器发送序号是>=400的断开连接请求,客户端的发送序号seq自增,值为301
- UDP 协议
UDP = User Datagram Protocol = 用户数据报协议
UDP 是一种无连接的 传输层 协议,提供面向事务的简单不可靠信息传送服务
优点
数据传输过程中延迟小,数据传输效率高,速度快
缺点
不提供数据包分组和组装,不能对数据包进行排序;
不保证数据传输的可靠性,可靠性由上层(应用层)保证
UDP 和 TCP 的对比
TCP | UDP | |
---|---|---|
名称 | 传输控制协议 | 用户数据报协议 |
连接 | 面向连接 | 无连接 |
传输模式 | 字节流 | 报文 |
传输可靠性 | 可靠 | 不可靠 |
资源占用 | 较多 | 较少 |
复杂度 | 较复杂 | 较简单 |
数据顺序 | 保证 | 不保证 |
传输效率 | 低 | 高 |
- HTTP 协议
HTTP = HyperText Transfer Protocol = 超文本传输协议
HTTP 是一种 应用层 的协议
规定了浏览器和 Web 服务器之间互相通信的规则, 通过网络传送 Web 文档的数据传送协议
特点
- HTTP 协议是一种请求-应答式的协议
- 从建立连接到关闭连接的过程称为“一次连接”
- 最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。
原理
- 连接用完就释放
- 需要不断向服务器发起连接请求来保持在线状态。
- 若服务器长时间无法收到客户端的请求,则认为客户端“下线”
- 若客户端长时间无法收到服务器的回复,则认为网络已经断开
两个版本差异
HTTP 协议是无连接的协议
- HTTP 1.0 短连接(非持久连接)
客户端的每次请求都要求建立一次单独的连接
在处理完本次请求后,就自动释放连接 - HTTP 1.1 长连接(持久连接)
可以在一次连接中处理多个请求
并且多个请求可以重叠进行, 不需要等待一个请求结束后再发送下一个请求
HTTP 请求
请求 Request ,由客户端发送给服务器端
请求的方法(方式 Method)
GET 请求 主要是数据的获取
POST 请求 主要是数据的提交
GET 请求和 POST 请 求 的 区 别 :(★)
- GET使用URL或Cookie传参。而POST将数据放在BODY中。
- GET的URL会有长度上的限制,则POST的数据则可以非常大。
- POST比GET安全,因为数据在地址栏上不可见。
- 一般GET请求用来获取数据,POST请求用来发送数据,数据提交。
HTTP 响应
响应 Response ,由服务器端返回给客户端
- 正常响应状态码 1XX,2XX,3XX
200 正常状态码 - 异常响应状态码 4XX,5XX
404 Not Found 找不到需要访问的资源
HTTPS请求特点
- 为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
- HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
- HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTTPS和HTTP的主要区别:(★)
- https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的。
总结:HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
三、Wireshark
- Wireshark 的特点
是非常流行的网络封包分析软件;
可以截取各种网络封包,显示网络封包的详细信息,但不能修改数据包的内容或者发送数据包;
能获取 HTTP、HTTPS,但是不能解密 HTTPS,所以无法读取 HTTPS 中的内容。 - 过滤数据包
过滤要求 | 过滤条件表达式 |
---|---|
过滤 IP 地址 | ip.addr==172.31.128.199 |
过滤源 IP 地址 | ip.src==172.31.128.199 |
过滤 目的IP 地址 | ip.dst==172.31.128.199 |
过滤端口 | tcp.port==80 |
过滤源端口 | tcp.srcport==80 |
过滤目的端口 | tcp.dstport==80 |
过滤协议 | http |
过滤HTTP 请求方式GET | http.request.method==“GET” |
过滤HTTP 请求方式POST | http.request.method==“POST” |
四、 Cookie 和 Session
Web 网站如何进行会话跟踪
困难
HTTP 协议是无状态协议
HTTP 协议不保存客户端信息,无法区分每次请求的不同之处
解决方法
Cookie
- 服务器暂存放在用户计算机上的一些资料,可以让服务器用来辨认用户的计算机。
- Cookie 通过在客户端记录信息确定用户身份
- 应用
保存用户的身份信息
自学几个月前端,为什么感觉什么都没学到??
这种现象在很多的初学者和自学前端的同学中是比较的常见的。
因为自学走的弯路是比较的多的,会踩很多的坑,学习的过程中是比较的迷茫的。
最重要的是,在学习的过程中,不知道每个部分该学哪些知识点,学到什么程度才算好,学了能做什么。
很多自学的朋友往往都是自己去找资料学习的,资料上有的或许就学到了,资料上没有的或许就没有学到。
这就会给人一个错误的信息就是,我把资料上的学完了,估计也-就差不多的了。
但是真的是这样的吗?非也,因为很多人找的资料就是很基础的。学完了也就是掌握一点基础的东西。分享给你一份前端分析路线,你可以参考。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。
所以学习编程一定要注重实践操作,练习敲代码的时间一定要多余看视频的时间。
65ecb71ac0)**
还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。
所以学习编程一定要注重实践操作,练习敲代码的时间一定要多余看视频的时间。