forked from frankfang-test/wtf-blog
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtset.html
102 lines (85 loc) · 6.29 KB
/
tset.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<img class="logo" src="logo.png">
<x-markdown>
##1.OSI 七层模型指什么
- 20世纪70年代,由于各大公司使用的网络协议不同,而导致各自使用的网络硬件也不同,因此出现了不同网络之间不能互联 以及扩容困难的问题。所以ISO和CCITT两大组织达成一致,制定了OSI分层网络模型,制定了统一的接口标准,按功能分类划分不同层级,便于理解和掌握。
层级 | 名称 | 说明
----|------|----
第一层 | 物理层 | 该层包括物理连网媒介,如规定电缆、接口等类型,与数据处理没有直接关系,传输的数据为比特流(0或1)
第二层 | 数据链路层 | 在物理层的基础上保障数据在通信戒介质上传输,通过物理地址(MAC地址)来确认数据发送至何处,该层传输的数据为帧
第三层 | 网络层 | 将网络地址翻译成对应物理地址,选择好路径(路由的选择)将数据发送至接收方
第四层 | 传输层 | 传输协议进行流量控制或者根据接收方的接收速率规定适当的发送速率,以防止对方数据溢出
第五层 | 会话层 | 定义了在网络中的两个节点之间建立,维持和终止通信的过程
第六层 | 表示层 | 定义传输数据所使用的的压缩方式以及数据的表现形式等
第七层 | 应用层 | 为操作系统或网络应用程序提供访问网络的服务(如HTTP,FTP,DNS)
##2.HTTP 的工作原理是什么?
- 人们在通信交流的过程中,会有一个必要的前提,那就是双方需要使用一种大家都懂的语言,且各种事物基本都有一样的描述认知,不然就会造成鸡同鸭讲。而这也是http的作用,通信的双方使用这个双方一致认同的协议交流。
- http协议是定义了客户端请求与服务器响应的一系列过程。
- http通信是基于TCP/IP连接之上的(相当于电话基于电话线一样)
- 当连接建立之后,浏览器发送附上描述请求和自身的请求报文
- 服务器接收请求后,根据报文的头信息,定位客户端需要的数据,然后返回响应报文(请求的数据在报文主体中)
- 服务器断开TCP连接(也可在是通用首部设置connection:keep-Alive 保持持久连接)
- 客户端得到数据后,根据响应头给出信息(MIME类型),开始相应开始渲染
##3.URI 的格式是什么?常见的协议有哪些
- URI(Uniform Resource Identifier)统一资源标示符
![](leanote://file/getImage?fileId=584d1d1716337c5fec000000)
- 常见的协议有`HTTP,FTP,DNS,IP,TCP`协议等,都是属于TCP/IP协议族。
##4.HTTP 协议有几种和服务器交互的方法
- GET:请求获取已被URI识别的资源
- HEAD:获取报文首部,和GET差不多,只是不返回主体
- POST:传输数据给服务器
- PUT:传输文件给服务器
- DELETE:删除服务器文件
- TRACE:追踪请求经过的代理路径,可以知道过程中请求是怎么被修改或者篡改的
- OPTIONS:返回服务器所支持的方法
- CONNECT:要求在与代理服务器通信时建立隧道,用隧道协议进行TCP连接
##5.状态码200,301, 304,403,404,500,503分别代表什么意思 ?
状态码 | 原因短语 | 说明
----|------|----
200 | ok | 请求被正常处理
301 | Moved Permanently | 永久重定向,被分配了新的URI
304 | Not Modified | 请求的资源未改变 可直接使用缓存
403 | Forbidden | 访问资源的权限不够
404 | Not Found | 请求的资源不存在
500 | Internal Server Error | 服务器执行请求时 出现错误,可能是故障或是BUG
503 | Service Unavailable | 服务器负载 暂时无法处理请求
##6.报文有哪几部分组成?
1. 起始行 (start line)
- 请求时结构:方法+URI+HTTP版本
- 响应时结构:HTTP版本+状态码
2. 首部 (header)
- 分为请求首部,响应首部,通用首部,实体首部
4. 空白行 (隔断作用)
3. 报文主体 (body)
- 一般请求时不一定有主体部分
##7.请求头的格式和作用是什么?给个范例截图说明
- 请求头是以键值对的格式,值可以有多个以逗号隔开,也可以给不同值设置优先级
- 请求头的作用就是提供服务器处理响应需要的额外重要信息
![](leanote://file/getImage?fileId=584d669e16337c5fec000002)
##8.首部的格式和作用是什么?给个范例截图说明
- 通用首部范例
- 首部的作用就是传递额外重要信息,不管是响应或者请求都会用到
![](leanote://file/getImage?fileId=584d692e16337c5fec000003)
- Request URL:请求的URL地址
- Request Method:请求的方法
- Status Code:状态码
- Remote Address :服务器的地址
##9.主体的作用是什么?给个范例
- 主体就是客户端与服务端通信所传输的数据
- 我们输入百度首页网址发送请求 ,百度服务器就给我们返回一个响应,响应的主体就是百度首页的HTML等
![](leanote://file/getImage?fileId=584d6b5516337c5fec000004)
##10.简述浏览器缓存是如何控制的
- 浏览器的是否缓存,缓存时间都是服务器控制的,当浏览器发出请求时,服务器会在响应标明有关缓存的信息
- Cache-Control : 可设置不同的参数来控制缓存,通常使用`max-age` 以秒为单位
- Expires:设置一个有效期限(根据用户的系统时间判断,可能会出现时差的问题)
- Last-Modified:表示请求资源在服务器的上次被修改的时间
- 发送请求的时候,请求头会附上`If-Modified-Since`,即服务器给我们的`Last-Modified`,服务收到后会匹配资源的更新时间,如果更新时间晚于`Last-Modified`,
- ETag :跟上面是类似的,服务器每次修改文件会生成对应的ETag标示,当浏览器请求的时候把服务器上次给的ETag放在请求头部 ,服务器会比较下ETag是否变化,如果不匹配就会响应整个资源,否则就是返回`304 Not Modified`
##11.下图各个参数是什么意思
![](leanote://file/getImage?fileId=584d7f5616337c5fec000006)
</x-markdown>
<link rel="stylesheet" href="css/default.css">
<script src="js/marked.min.js"></script>
<script src="js/main.js"></script>