57
57
58
58
URI 包含 URL 和 URN,目前 WEB 只有 URL 比较流行,所以见到的基本都是 URL。
59
59
60
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//4102b7d0-39b9-48d8-82ae-ac4addb7ebfb.jpg" /> </div ><br >
60
+ <br ><div align =" center " > <img src =" .. /pics//4102b7d0-39b9-48d8-82ae-ac4addb7ebfb.jpg" /> </div ><br >
61
61
62
62
## 请求和响应报文
63
63
64
64
** 请求报文**
65
65
66
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//22b39f77-ac47-4978-91ed-84aaf457644c.jpg" /> </div ><br >
66
+ <br ><div align =" center " > <img src =" .. /pics//22b39f77-ac47-4978-91ed-84aaf457644c.jpg" /> </div ><br >
67
67
68
68
** 响应报文**
69
69
70
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//00d8d345-cd4a-48af-919e-209d2788eca7.jpg" /> </div ><br >
70
+ <br ><div align =" center " > <img src =" .. /pics//00d8d345-cd4a-48af-919e-209d2788eca7.jpg" /> </div ><br >
71
71
72
72
# HTTP 方法
73
73
@@ -120,13 +120,13 @@ GET 的传参方式相比于 POST 安全性较差,因为 GET 传的参数在 U
120
120
121
121
TRACE 一般不会使用,并且它容易受到 XST 攻击(Cross-Site Tracing,跨站追踪),因此更不会去使用它。
122
122
123
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//c8637fd2-3aaa-46c4-b7d9-f24d3fa04781.jpg" /> </div ><br >
123
+ <br ><div align =" center " > <img src =" .. /pics//c8637fd2-3aaa-46c4-b7d9-f24d3fa04781.jpg" /> </div ><br >
124
124
125
125
## CONNECT:要求用隧道协议连接代理
126
126
127
127
主要使用 SSL(Secure Sokets Layer,安全套接字)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
128
128
129
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//5994928c-3d2d-45bd-abb1-adc4f5f4d775.jpg" /> </div ><br >
129
+ <br ><div align =" center " > <img src =" .. /pics//5994928c-3d2d-45bd-abb1-adc4f5f4d775.jpg" /> </div ><br >
130
130
131
131
# HTTP 状态码
132
132
@@ -168,7 +168,7 @@ TRACE 一般不会使用,并且它容易受到 XST 攻击(Cross-Site Tracing
168
168
169
169
- ** 401 Unauthorized** :该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。如果之前已进行过一次请求,则表示用户认证失败。
170
170
171
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//b1b4cf7d-c54a-4ff1-9741-cd2eea331123.jpg" /> </div ><br >
171
+ <br ><div align =" center " > <img src =" .. /pics//b1b4cf7d-c54a-4ff1-9741-cd2eea331123.jpg" /> </div ><br >
172
172
173
173
- ** 403 Forbidden** :请求被拒绝,服务器端没有必要给出拒绝的详细理由。
174
174
@@ -261,7 +261,7 @@ HTTP 协议是无状态的,主要是为了让 HTTP 协议尽可能简单,使
261
261
262
262
服务器发送的响应报文包含 Set-Cookie 字段,客户端得到响应报文后把 Cookie 内容保存到浏览器中。下次再发送请求时,从浏览器中读出 Cookie 值,在请求报文中包含 Cookie 字段,这样服务器就知道客户端的状态信息了。Cookie 状态信息保存在客户端浏览器中,而不是服务器上。
263
263
264
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//ff17c103-750a-4bb8-9afa-576327023af9.png" /> </div ><br >
264
+ <br ><div align =" center " > <img src =" .. /pics//ff17c103-750a-4bb8-9afa-576327023af9.png" /> </div ><br >
265
265
266
266
Set-Cookie 字段有以下属性:
267
267
@@ -298,13 +298,13 @@ Expires 字段可以用于告知缓存服务器该资源什么时候会过期。
298
298
299
299
当浏览器访问一个包含多张图片的 HTML 页面时,除了请求访问 HTML 页面资源,还会请求图片资源,如果每进行一次 HTTP 通信就要断开一次 TCP 连接,连接建立和断开的开销会很大。 ** 持久连接** 只需要进行一次 TCP 连接就能进行多次 HTTP 通信。HTTP/1.1 开始,所有的连接默认都是持久连接。
300
300
301
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//c73a0b78-5f46-4d2d-a009-dab2a999b5d8.jpg" /> </div ><br >
301
+ <br ><div align =" center " > <img src =" .. /pics//c73a0b78-5f46-4d2d-a009-dab2a999b5d8.jpg" /> </div ><br >
302
302
303
303
持久连接需要使用 Connection 首部字段进行管理。HTTP/1.1 开始 HTTP 默认是持久化连接的,如果要断开 TCP 连接,需要由客户端或者服务器端提出断开,使用 Connection: close;而在 HTTP/1.1 之前默认是非持久化连接的,如果要维持持续连接,需要使用 Keep-Alive。
304
304
305
305
管线化方式可以同时发送多个请求和响应,而不需要发送一个请求然后等待响应之后再发下一个请求。
306
306
307
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//6943e2af-5a70-4004-8bee-b33d60f39da3.jpg" /> </div ><br >
307
+ <br ><div align =" center " > <img src =" .. /pics//6943e2af-5a70-4004-8bee-b33d60f39da3.jpg" /> </div ><br >
308
308
309
309
## 编码
310
310
@@ -320,7 +320,7 @@ Expires 字段可以用于告知缓存服务器该资源什么时候会过期。
320
320
321
321
例如,上传多个表单时可以使用如下方式:
322
322
323
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//2279cc60-9714-4e0e-aac9-4c348e0c2165.png" /> </div ><br >
323
+ <br ><div align =" center " > <img src =" .. /pics//2279cc60-9714-4e0e-aac9-4c348e0c2165.png" /> </div ><br >
324
324
325
325
## 范围请求
326
326
@@ -348,19 +348,19 @@ Expires 字段可以用于告知缓存服务器该资源什么时候会过期。
348
348
349
349
使用代理的主要目的是:缓存、网络访问控制以及访问日志记录。
350
350
351
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//c07035c3-a9ba-4508-8e3c-d8ae4c6ee9ee.jpg" /> </div ><br >
351
+ <br ><div align =" center " > <img src =" .. /pics//c07035c3-a9ba-4508-8e3c-d8ae4c6ee9ee.jpg" /> </div ><br >
352
352
353
353
** 网关**
354
354
355
355
与代理服务器不同的是,网关服务器会将 HTTP 转化为其它协议进行通信,从而请求其它非 HTTP 服务器的服务。
356
356
357
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//81375888-6be1-476f-9521-42eea3e3154f.jpg" /> </div ><br >
357
+ <br ><div align =" center " > <img src =" .. /pics//81375888-6be1-476f-9521-42eea3e3154f.jpg" /> </div ><br >
358
358
359
359
** 隧道**
360
360
361
361
使用 SSL 等加密手段,为客户端和服务器之间建立一条安全的通信线路。
362
362
363
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//64b95403-d976-421a-8b45-bac89c0b5185.jpg" /> </div ><br >
363
+ <br ><div align =" center " > <img src =" .. /pics//64b95403-d976-421a-8b45-bac89c0b5185.jpg" /> </div ><br >
364
364
365
365
# HTTPs
366
366
@@ -380,7 +380,7 @@ HTTPs 并不是新协议,而是 HTTP 先和 SSL(Secure Socket Layer)通信
380
380
381
381
HTTPs 采用 ** 混合的加密机制** ,使用公开密钥加密用于传输对称密钥,之后使用对称密钥加密进行通信。(下图中,共享密钥即对称密钥)
382
382
383
- <br ><div align =" center " > <img src =" https://github.com/CyC2018/InterviewNotes/blob/master /pics//110b1a9b-87cd-45c3-a21d-824623715b33.jpg" /> </div ><br >
383
+ <br ><div align =" center " > <img src =" .. /pics//110b1a9b-87cd-45c3-a21d-824623715b33.jpg" /> </div ><br >
384
384
385
385
## 认证
386
386
0 commit comments