应用层
计算机网络 · 18 篇笔记
- 2.1 HTTP版本historical
1. HTTP1.0 1.1. 客户端/服务器 1.2. 短链接 - 每次HTTP请求时建立TCP连接、请求完释放TCP连接,以尽快将资源释放出来服务其他客户端 - 问题:对于图片这种静态资源每张都需要请求服务器,重新建立连接的时间很浪费 - 解决: Connection:Keep-Alive 。即
- 2.2 WebSockethistorical
1. WebSocket是什么 WebSocket与Http一样,也是一种协议 2. 为什么需要WebSocket 为了解决Http的一个缺点:服务器有数据要通知给用户的时候无法主动推送/通信仅能由客户端发起 3. WebSocket作用 - 实时获取服务器数据 websocket之前只能使用aja
- 2.3 HTTP状态码historical
1. 1xx 表示临时响应并需要请求者继续执行操作的状态代码 2. 2xx 表示成功处理了请求的状态代码 - 200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 - 201 (已创建) 请求成功并且服务器创建了新的资源。 - 202 (已接受) 服务器已接受请求,但尚未
- 3.1 CDNhistorical
1. 什么是 CDN - 内容分发网络 - 由全球范围内的代理服务器组成,给用户就近提供 静态内容 ,说白了就是缓存 2. 为什么需要 CDN - 缓存提高访问速度 3. CDN 缺点 - 时效性 4. CDN 工作原理 - 开发人员 1. 开发人员架设好 www.a.com <- 3.3.3.3
- 3.2 DNShistorical
1. DNS是什么 - 域名- IP地址 - IP地址有以下几种:A记录(IPv4)、AAAA记录(IPv6)、CNAME(主机别名) 2. 为什么需要DNS - 域名只是助记符,根据IP才能找到网络上的机器, 3. DNS解析过程 1. 计算机查询 www.baidu.com 对应的IP,还原成
- 2.4 Fiddlerhistorical
1. 工作原理 Fiddler相当于一个中间人 2. Fiddler界面 2.1. 工具栏 2.2. 状态栏 2.3. 会话工具 - Statistics:性能分析 - Inspectors:检查一个Http事务 - AutoResponder:自定义响应信息 - Filter:过滤器 3. 常用操作 3.1. 设置HTTPS - Tool-Options - HTTPS 3.2. 设置代理 - Tool-Options - Connections - 浏览器 3.3. 添加Server IP列
- 2.5 HTTP KeepAlivehistorical
1. HTTP KeepAlive是什么 Http的长连接是一种复用tcp连接的机制。 Http1.0时期,每个tcp连接只能用于一个Http Transaction(request+response)。 Http1.1引入了Http Keep Alive,即复用一个TCP链接用于多个Http Transaction 2. HTTP KeepAlive原理 - 客户端request header带上 Connection: KeepAlive - 服务器response header带上 Connection: KeepAlive
- 2.6 HTTPhistorical
1. HTTP报文格式 1.1. 请求 - 请求行 - 请求头 - 空行 - 请求体 1.2. 响应 - 状态行 - 响应头 - 空行 - 响应体 2. URL URL编码.md 3. HTTP方法 HTTP方法.md 4. HTTP状态码 HTTP状态码.md 5. HTTP版本 HTTP版本.md 6. HTTP跨域 浏览器同源策略以及跨域.md 7. HTTP缓存 HTTP缓存.md 8. HTTP长链接 HTTP KeepAlive.md
- 2.7 HTTPShistorical
1. 什么是HTTPS - HTTPS=HTTP+SSL/TLS 2. 为什么需要HTTPS Http是明文传输,如果有人捕获了这个报文,那么他可以解析出所有数据。 Https是密文传输,即数据仅仅只在发送方和目的方双方可见,而对中间任一一个节点都不可见 2.1. HTTP VS HTTPS URL HTTP HTTPS 是否安全 否,明文 是(会加密传输过程中的数据),密文 端口 80 443 OSI网络模型 应用层 应用层
- 2.8 HTTP方法historical
1. 什么是HTTP方法 HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。 HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法 2. HTTP方法性质 2.1. 安全 指的是是否只读的。 GET, HEAD, OPTIONS 和 TRACE 这几个方法是安全的
- 2.9 HTTP缓存historical
1. 什么是HTTP缓存 - 浏览器端的缓存 2. 为什么需要HTTP缓存 - HTTP是无状态的,优点在于可扩展,缺点在于需要发送重复数据导致网络性能降低 3. HTTP缓存分类 3.1. 状态缓存 - 不经过服务器,直接根据缓存信息对目标网络的状态判断 3.1.1. 301/302 - 缺点:通过301/302跳转HTTPS时可能产生的降级中间人劫持
- 2.10 HTTP超时historical
1. 什么是HTTP超时 - Connection、Read、Write任意一个超过一定的时间就会发生超时 2. 参考 - HTTP 在什么情况下会请求超时? - 知乎
- 2.11 Restfulhistorical
1. 什么是Restful - 基于HTTP协议的软件架构设计风格 - Resource Representational State Transfer 1.1. Resource 资源。使用URI定位资源 1.2. Representational 表现层。可以是txt、json等格式。
- 2.12 URL编码historical
1. 为什么需要URL编码 URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。如果是其他字符需要转义,%字符编码 2. 如何编码 - 路径中:用的是utf-8编码 - get query param中:用的是操作系统的默认编码 需要使用encodeURI进行编码 3. 参考
- 2.13 cookie和sessionhistorical
1. cookie+session工作机制 浏览器访问服务端, 服务端生成session代表会话,生成sessionid标识这个会话并把sessionid设置到cookie中返回给浏览器 浏览器每次访问服务器都会带上cookie,其中有sessionid 服务器拿到sessionid后就能知道是哪个用户访问的 2. cookie vs session
- 2.14 在浏览器地址栏输入一个URL后回车historical
1. 简述过程 1. 解析URL 比如 https://www.baidu.com 或者 https://www.baidu.com/ - https://www.baidu.com/index.html ,而 https://www.baidu.com/dir 则会先找是否有dir的文件,没有的话找目录 1. DNS域名解析 DNS.md 2. 3次握手建立TCP连接 TCP三次握手.md ARP.md IP协议.md 3. 如果是HTTPS的话还要建立HTTPS连接 HTTPS.md
- 2.15 浏览器同源策略以及跨域historical
1. 什么是同源 两个URL的 (协议,主机,端口) 三元组相同的话就叫做同源 下表给出了相对http://store.company.com/dir/page.html同源检测的示例 2. 什么是跨域 当前页面的javascript访问了非同源的资源,就叫做跨域 3. 跨域资源限制 4. 如何解决跨域问题 使用CORS。