diff --git a/notes/HTTP.md b/notes/HTTP.md index aae807e6..d03beaa5 100644 --- a/notes/HTTP.md +++ b/notes/HTTP.md @@ -25,7 +25,6 @@ * [实体首部字段](#实体首部字段) * [五、具体应用](#五具体应用) * [Cookie](#cookie) - * [6. Secure](#6-secure) * [缓存](#缓存) * [连接管理](#连接管理) * [内容协商](#内容协商) @@ -369,7 +368,7 @@ document.cookie = "tasty_cookie=strawberry"; console.log(document.cookie); ``` -### 6. HttpOnly +### 6. HttpOnly 标记为 HttpOnly 的 Cookie 不能被 JavaScript 脚本调用。跨站脚本攻击 (XSS) 常常使用 JavaScript 的 `Document.cookie` API 窃取用户的 Cookie 信息,因此使用 HttpOnly 标记可以在一定程度上避免 XSS 攻击。 @@ -377,11 +376,11 @@ console.log(document.cookie); Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly ``` -## 6. Secure +### 7. Secure 标记为 Secure 的 Cookie 只能通过被 HTTPS 协议加密过的请求发送给服务端。但即便设置了 Secure 标记,敏感信息也不应该通过 Cookie 传输,因为 Cookie 有其固有的不安全性,Secure 标记也无法提供确实的安全保障。 -### 7. Session +### 8. Session 除了可以将用户信息通过 Cookie 存储在用户浏览器中,也可以利用 Session 存储在服务器端,存储在服务器端的信息更加安全。 @@ -396,11 +395,11 @@ Session 可以存储在服务器上的文件、数据库或者内存中。也可 应该注意 Session ID 的安全性问题,不能让它被恶意攻击者轻易获取,那么就不能产生一个容易被猜到的 Session ID 值。此外,还需要经常重新生成 Session ID。在对安全性要求极高的场景下,例如转账等操作,除了使用 Session 管理用户状态之外,还需要对用户进行重新验证,比如重新输入密码,或者使用短信验证码等方式。 -### 8. 浏览器禁用 Cookie +### 9. 浏览器禁用 Cookie 此时无法使用 Cookie 来保存用户信息,只能使用 Session。除此之外,不能再将 Session ID 存放到 Cookie 中,而是使用 URL 重写技术,将 Session ID 作为 URL 的参数进行传递。 -### 9. Cookie 与 Session 选择 +### 10. Cookie 与 Session 选择 - Cookie 只能存储 ASCII 码字符串,而 Session 则可以存取任何类型的数据,因此在考虑数据复杂性时首选 Session; - Cookie 存储在浏览器中,容易被恶意查看。如果非要将一些隐私数据存在 Cookie 中,可以将 Cookie 值进行加密,然后在服务器进行解密; diff --git a/notes/计算机网络.md b/notes/计算机网络.md index 3a08e2a0..fba8a6d0 100644 --- a/notes/计算机网络.md +++ b/notes/计算机网络.md @@ -5,7 +5,7 @@ * [主机之间的通信方式](#主机之间的通信方式) * [电路交换与分组交换](#电路交换与分组交换) * [时延](#时延) - * [计算机网络体系结构*](#计算机网络体系结构) + * [计算机网络体系结构](#计算机网络体系结构) * [二、物理层](#二物理层) * [通信方式](#通信方式) * [带通调制](#带通调制) @@ -13,14 +13,14 @@ * [基本问题](#基本问题) * [信道分类](#信道分类) * [信道复用技术](#信道复用技术) - * [CSMA/CD 协议*](#csmacd-协议) + * [CSMA/CD 协议](#csmacd-协议) * [PPP 协议](#ppp-协议) * [MAC 地址](#mac-地址) * [局域网](#局域网) - * [以太网*](#以太网) - * [交换机*](#交换机) + * [以太网](#以太网) + * [交换机](#交换机) * [虚拟局域网](#虚拟局域网) -* [四、网络层*](#四网络层) +* [四、网络层](#四网络层) * [概述](#概述) * [IP 数据报格式](#ip-数据报格式) * [IP 地址编址方式](#ip-地址编址方式) @@ -31,7 +31,7 @@ * [路由器的结构](#路由器的结构) * [路由器分组转发流程](#路由器分组转发流程) * [路由选择协议](#路由选择协议) -* [五、运输层*](#五运输层) +* [五、运输层](#五运输层) * [UDP 和 TCP 的特点](#udp-和-tcp-的特点) * [UDP 首部格式](#udp-首部格式) * [TCP 首部格式](#tcp-首部格式) @@ -121,7 +121,7 @@ 分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。 -## 计算机网络体系结构* +## 计算机网络体系结构

@@ -129,11 +129,11 @@ - **应用层** :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等。数据单位为报文。 -- **运输层** :提供的是进程间的通用数据传输服务。由于应用层协议很多,定义通用的运输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。 +- **运输层** :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的运输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。 -- **网络层** :为主机间提供数据传输服务,而运输层协议是为主机中的进程提供服务。网络层把运输层传递下来的报文段或者用户数据报封装成分组。 +- **网络层** :为主机提供数据传输服务。而运输层协议是为主机中的进程提供数据传输服务。网络层把运输层传递下来的报文段或者用户数据报封装成分组。 -- **数据链路层** :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供服务。数据链路层把网络层传下来的分组封装成帧。 +- **数据链路层** :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。 - **物理层** :考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。 @@ -271,7 +271,7 @@ TCP/IP 协议族是一种沙漏形状,中间小两边大,IP 协议在其中

-## CSMA/CD 协议* +## CSMA/CD 协议 CSMA/CD 表示载波监听多点接入 / 碰撞检测。 @@ -316,7 +316,7 @@ MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标

-## 以太网* +## 以太网 以太网是一种星型拓扑结构局域网。 @@ -333,7 +333,7 @@ MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标

-## 交换机* +## 交换机 交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。 @@ -353,7 +353,7 @@ MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标

-# 四、网络层* +# 四、网络层 ## 概述 @@ -578,7 +578,7 @@ BGP 只能寻找一条比较好的路由,而不是最佳路由。

-# 五、运输层* +# 五、运输层 网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。运输层提供了进程间的逻辑通信,运输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个运输层实体之间有一条端到端的逻辑通信信道。