前端应该掌握的网络知识
1、客户端:通过发送请求获取服务器资源的web浏览器等。
2、TCP/IP协议族按层次分为:应用层、传输层、网络层和数据链路层。
- 应用层决定了向用户提供应用服务时通信的活动。比如:FTP(文本传输协议)和DNS(域名系统),HTTP协议属于此层。
- 传输层主要提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议:TCP(传输控制协议)和UDP(用户数据包协议)。
- 网络层(又名网络互连层)。网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(传输路线)到达对方的计算机,并把数据包传送给对方。
- 链路层(又名数据链路层,网络接口层)。该层用来处理连接网络的硬件部分。包括操作系统、硬件的设备驱动、NIC(网络适配器,又名网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。
3、IP协议的作用是把各种数据包传送给对方。确保确实传送过去的两个重要的条件是IP地址和MAC地址。IP间的通信依赖MAC地址。
4、TCP位于传输层,提供可靠的字节流服务。字节流服务指的是,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。
TCP协议的三次握手(三次握手其实是一次握手,只不过是三次报文传输)
- 发送端发送带SYN标志的数据包给对方
- 接收端收到,回传一个带有SYN/ACK标志的数据包以示传达确认信息
- 发送端回传一个带ACK标志的数据包,代表“握手”结束
5、从输入URL到页面加载发生了什么?
- DNS解析
- TCP连接
- 发送HTTP请求
- 服务器处理请求并返回HTTP报文
- 浏览器解析渲染页面
- 连接关闭
6、URI:统一资源标识符,URL:统一资源定位符
7、HTTP协议是无状态协议。意味着自身不会对请求和响应之间的通信状态进行保存。
注:HTTP协议是无状态的,主要考虑以前上网纯粹是为了浏览网页,而不需要记住用户现在的登录状态;而且这么设计可以减小服务器压力。
8.HTTP协议初始版本中,每进行一次HTTP通信就要断开一次TCP连接。后来为了解决此问题,提出了持久连接(也称HTTP keep-alive或HTTP connection reuse)。持久化连接的特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。
9.HTTP报文:用于HTTP协议交互的信息。请求端(客户端)的HTTP报文叫请求报文,响应端(服务器端)的叫做响应报文。
注:报文首部:服务器端或客户端需处理的请求或响应的内容及属性;CR+LF:CR(Carriage Return, 回车符:16进行0x0d)和LF(Line Feed,换行符:16进制0x0a);报文主体:应被发送的数据。
10.报文是HTTP通信中的基本单位,由8位组字节流组成,通过HTTP通信传输。
11.实体作为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成。
12.HTTP状态码的类别
类别 | 原因短语 | |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求错误 |
13.常用状态码解释
- 2XX
- 200 OK 成功
- 204 No Content 该状态码代表服务器接收的请求已经成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的内容。
- 206 Partial Content 该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。
- 3XX
- 301 Moved Permanently 永久重定向。该状态码表示请求的资源已经被分配了新的URI,以后应该使用资源现在所指的URI。
- 302 Found 临时性重定向。该状态码表示请求的资源已经分配了新的URI,希望用户(本次)能使用新的URI访问。
- 304 Not Modified 该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但因为请求未满足条件的情况后,直接返回304(服务器端资源未改变,可直接使用客户端未过期的缓存)。
- 4XX
- 400 Bad Request 该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再发送请求。
- 401 Unauthorized 未授权,表示发送的请求需要通过认证。
- 403 Forbidden 该状态码表明对请求资源的访问被服务器拒绝了。
- 404 Not Found 服务器没有请求的资源。
- 5XX
- 500 Internal Server Error 服务器在执行请求时发生了错误。
- 503 Service Unavailable 表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
14.代理:一种有转发功能的应用程序,扮演客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端的角色。
15.网关:转发其他服务器通信数据的服务器,接收从客户端发送来的请求,它就像自己拥有资源的服务器一样对请求进行处理。
16.隧道:在相隔很远的服务器和客户端两者之间进行中转,并保持双方通信连接的应用程序。
17.代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器。
18.使用代理服务器的理由:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的,等等。