File tree 1 file changed +25
-1
lines changed
1 file changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -227,4 +227,28 @@ PS:一般定时器设定的时间都会大于一个 RTT 的平均时间。
227
227
228
228
在 ** TCP New Reno** 中,TCP 发送方先记下三个重复 ACK 的分段的最大序号。
229
229
230
- 假如我有一个分段数据是 1 ~ 10 这十个序号的报文,其中丢失了序号为 3 和 7 的报文,那么该分段的最大序号就是 10。发送端只会收到 ACK 序号为 3 的应答。这时候重发序号为 3 的报文,接收方顺利接收并会发送 ACK 序号为 7 的应答。这时候 TCP 知道对端是有多个包未收到,会继续发送序号为 7 的报文,接收方顺利接收并会发送 ACK 序号为 11 的应答,这时发送端认为这个分段接收端已经顺利接收,接下来会退出快恢复阶段。
230
+ 假如我有一个分段数据是 1 ~ 10 这十个序号的报文,其中丢失了序号为 3 和 7 的报文,那么该分段的最大序号就是 10。发送端只会收到 ACK 序号为 3 的应答。这时候重发序号为 3 的报文,接收方顺利接收并会发送 ACK 序号为 7 的应答。这时候 TCP 知道对端是有多个包未收到,会继续发送序号为 7 的报文,接收方顺利接收并会发送 ACK 序号为 11 的应答,这时发送端认为这个分段接收端已经顺利接收,接下来会退出快恢复阶段。
231
+
232
+ ## HTTP
233
+
234
+ HTTP 协议是个无状态协议,不会保存状态。
235
+
236
+ ### Post 和 Get 的区别
237
+
238
+ 先引入副作用和幂等的概念。
239
+
240
+ 副作用指对服务器上的资源做改变,搜索是无副作用的,注册是副作用的。
241
+
242
+ 幂等指发送 M 和 N 次请求(两者不相同且都大于 1),服务器上资源的状态一致,比如注册 10 个和 11 个帐号是不幂等的,对文章进行更改 10 次和 11 次是幂等的。
243
+
244
+ 在规范的应用场景上说,Get 多用于无副作用,幂等的场景,例如搜索关键字。Post 多用于副作用,不幂等的场景,例如注册。
245
+
246
+ 在技术上说:
247
+ * Get 请求能缓存,Post 不能
248
+ * Post 相对 Get 安全一点点,因为Get 请求都包含在 URL 里,且会被浏览器保存历史纪录,Post 不会,但是在抓包的情况下都是一样的。
249
+ * Post 可以通过 request body来传输比 Get 更多的数据,Get 没有这个技术
250
+ * URL有长度限制,会影响 Get 请求,但是这个长度限制是浏览器规定的,不是 RFC 规定的
251
+ * Post 支持更多的编码类型且不对数据类型限制
252
+
253
+
254
+
You can’t perform that action at this time.
0 commit comments