【 网络基础 】

计算机网络笔记

掌握OSI七层每层的功能,协议、接口、服务、实体等概念,数据通信的过程
掌握TCP/IP模型中每层的协议及主要作用
掌握TCP协议的特点,三次握手的过程,流量控制的方法
掌握IP协议的作用,IP地址的分类和子网划分
掌握常见的局域网技术,以太网的工作原理。csma/cd原理
了解常见的传输介质及特点
了解常见的网络设备及作用 
了解常见的广域网通信技术和接入方法

一、概述

1、三大类网络

  1.1 电信网络 向用户提供电话、电报及传真服务。

  1.2 有线电视网络 向用户传送各种电视节目。

  1.3 计算机网络 使用户能够通过计算机之间传送数据文件。

2、计算机网络

  2.1 概述 计算机网络(简称网络)由若干结点(node)和连接这些结点的链路(link)组成(硬件上是这样的)。

  2.2 结点 网络中的结点可以是计算机、集线器、交换机或路由器等。

  2.3 云 在很多情况下,我们可以用一朵云表示一个网络。这样做的好处是可以不去关心网络上中的相当复杂的细节问题,因而可以集中精力研究涉及到与网络互连有关的一些问题。

3、互连网

 3.1 概述 网络之间通过路由器互连起来,构成一个覆盖范围更大的计算机网络。这样的网络称为互连网(internet)。因此互连网是“网络的网络”(network of networks)3.2 以小写字母i开始的internet(互连网)是一个通用名词,它泛指由多个计算机网络互连而成的计算机网络。在这些网络之间的通用协议(即通信规则)可以任意选择,不一定非要使用TCP/IP协议。

 3.3 主机 网络把许多计算机连接在一起,而互连网则把许多网络通过路由器连接在一起。与网络相连的计算机常称为主机。

4、互联网

4.1 概述 以大写字母I开始的Internet(互联网或因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定互联网,它采用TCP/IP协议族作为通信的规则,且其前身是美国的ARPANET。

4.2 互联网基础结构发展的三个阶段
   4.2.1 第一阶段 从单个网络ARPANET向互联网发展的过程
   4.2.1.1 1969年 美国国防部创建的第一个分组交换网ARPANET最初只是一个单个的分组交换网(并不是一个互连的网络)。
   4.2.1.2 20世纪70年代中期 一个单独的网络无法满足所有的通信问题。于是ARPA开始研究多种网络(如分组无线电网络)互连的技术,这就导致了互连网络的出现。这就成为现今互联网(Internet)的雏形。
   4.2.1.3 1983年TCP/IP协议成为ARPANET上的标准协议,使得所有使用TCP/IP协议的计算机都能利用互连网相互通信,因而人们就把1983年作为互联网的诞生时间。
   4.2.2 第二阶段 建成三级结构的互联网
   4.2.2.1 1985年起 美国国家科学基金会NSF围绕六个大型计算机中心建设计算机网络,即国家科学基金网NSFNET。它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。
   4.2.2.2 1992年互联网上的主机超过100万台。
   4.2.2.3 1993年 互联网主干网的速率提高到45Mbit/s(T3速率)。
   4.2.3 第三阶段 逐渐形成多层次ISP结构的互联网
   4.2.3.1 1993年 NSFNET逐渐被若干个商用的互联网主干网替代,政府机构不再负责互联网的运营。这样就出现了一个新的名词:互联网服务提供者ISP(Internet Service Provider)。ISP又常译为互联网服务提供商。例如我国三大ISP,中国电信、中国联通和中国移动这些运营商的网络通过IX(互联网交换中心【平台】)交换数据。

5、互联网的组成

5.1 边缘部分 由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
   
5.2 核心部分 由大量网络和连接这些网络的路由器/交换设备/通信设备组成。这部分是为边缘部分提供服务的(提供连通性和数据交换)。

6、计算机之间的通信

 6.1 概述 主机A和主机B进行通信,实际上是指运行在主机A上的某个程序和运行在主机B上的另一个程序进行通信(这些程序用端口号进行标识)。因此这也就是指主机A的某个进程和主机B上的另一个进程进行通信。简称为计算机之间通信。
 
 6.2 客户-服务器方式(C/S 方式) 客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务与被服务的关系。客户是服务请求方,服务器是服务提供方。 
    6.2.1 客户程序 被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址(套接字)。客户程序不需要特殊的硬件和很复杂的操作系统。
    6.2.2 服务器程序 是开发专门用来提供某种服务的程序,可同时处理多个远地或本地客户端的请求。服务器被动的等待并接受来自各地的客户端的通信请求。因此服务器不需要知道客户端的地址。服务器一般需要有强大的硬件和高级的操作系统支持。

 6.3 对等方式(P2P 方式) peer-to-peer,简写为P2P。P2P是指两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要这两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。

7、互联网的核心部分

 7.1 路由器 在网络核心部分起特殊作用的是路由器(router),它是一种专用计算机(但不叫做主机)。路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
 
 7.2 分组交换 采用存储转发技术。指把一个报文划分为几个分组后再进行传送。需要发送的整块数据称为一块报文(message)。将报文划分成多个等长数据段且在每个数据段前面加上一些由必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组又称为包,而分组的首部也可称为包头。

8、计算机网络的类别

8.1 按照网络的作用范围进行分类
   8.1.1 广域网WAN(Wide Area Network)作用范围通常为几十到几千公里,因而也称为远程网。互联网的核心部分,其任务是通过长距离运送主机所发送的数据。
   8.1.2 城域网MAN(Metropoliatan Area Network)作用范围一般是一个城市,约为5 – 50km。
   8.1.3 局域网LAN(Local Area Network)一般用微型计算机或工作站通过高速通信线路相连(速率10Mbit/s以上),作用范围较小,约为1km左右,具有明显的某单位组织的隶属特点。
   8.1.4 个人区域网PAN(Personal Area Network)个人电子设备用无线技术连接的网络,作用范围大约10m左右。
   
8.2 按照网络的使用者进行分类
   8.2.1 公用网(public network)电信公司的大型网络,所有意愿按电信公司要求交纳费用的人都可以使用。
   8.2.2 专用网(private network)某些部门专用的网络,不向单位外的人提供服务。例如 军队、铁路、银行等。

8.3 接入网AN(Access Network)又称为本地接入网或居民接入网。用户端系统到互联网中的第一个路由器(也称为边缘路由器)之间的一种网络。

9、计算机网络的性能

9.1 速率 指的是数据的传送速率,也称为数据率或比特率。单位是bit/s(比特每秒)。1024000b=1024Kb=1Mb=0.001Gb。网络的速率一般指的是额定速率或标称速率。

9.2 带宽 表示网络中某信道传送数据的能力,表示在单位时间内网络中的某信道所能通过的最高数据率。带宽的单位就是数据率的单位bit/s,比特每秒。

9.3 吞吐量 表示在单位时间内通过某个网络的实际的数据量。吞吐量受网络的带宽或网络的额定速率的限制。

9.4 时延 指数据从网络的一端传送到另一端所需的时间。也称为延迟。
   9.4.1 发送时延指主机或路由器发送数据帧所需要的时间,发送第一个比特到最后一个比特发送完毕所需的时间。也称为传输时延。发送时延=数据帧长度(bit)除以 发送速率(bit/s)。
   9.4.2 传播时延指电磁波在信道中传播一定的距离所需的时间。信号传送的距离越远,传播时延就越大。传播时延=信道长度(m)除以电磁波在信道上的传播速率(m/s)。
   9.4.3 处理时延 主机或路由器在收到分组时进行处理的所需时间。
   9.4.4 排队时延 分组在经过网络传输时,要经过许多路由器。分组在进入路由器后要先在输入队列中排队等待处理。路由器确定转发接口后,还要在输出队列中排队等待。这就产生了排队时延。
   9.4.5 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延

9.5 利用率 
   9.5.1 信道利用率 指某信道有百分之几的时间时被利用的(有数据通过)。完全空闲的信道的利用率是零。信道利用率并非越高越好。1/(1+a)
   9.5.2 网络利用率 指全网络的信道利用率的加权平均值。

10、计算机网络的非性能特征

10.1 费用 网络的价格(包括设计和实现的费用),网络的性能与其价格密切相关。网络的速率越高,其价格也越高。

10.2 质量 网络的质量取决于网络中所有构件的质量。

10.3 标准化 网络的硬件和软件的设计既可以按照通用的国际标准,也可以遵循特定的专用网络的标准。

10.4 可靠性 可靠性与网络的质量和性能都有密切关系。

10.5 可扩展性和可升级性

10.6 易于管理和维护

11、计算机网络体系结构

11.1 OSI的七层协议 
 7  应用层
 6  表示层
 5  会话层
 4  运输层
 3  网络层
 2  数据链路层
 1  物理层
11.2 TCP/IP的四层协议
 4  应用层(各种应用层协议如TELNET,FTP,SMTP等)
 3  运输层(TCP或UDP)
 2  网际层IP
 1  网络接口层
11.3 五层协议
 5  应用层
 4  运输层
 3  网络层
 2  数据链路层
 1  物理层

二、OSI七层协议

1、OSI七层模型

1.OSI七层和TCP/IP四层的关系
   1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。
   1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。
   1.3 OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

TCP:transmission control protocol 传输控制协议
UDP:user data protocol 用户数据报协议

OSI七层网络模型	    TCP/IP四层概念模型	对应网络协议
应用层(Application)	应用层	     HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、DNS、RTSP、XMPP
表示层(Presentation)		         XDR、ASN.1、SMB、AFP、NCP
会话层(Session)		             ADSP、TLS、SSH、、RPC、RTCP、ASP、SCP
传输层(Transport)	    传输层	     TCP、UDP、RTP、SCTP、SPX、ATP、IL
网络层(Network)	    网络层	     IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP
数据链路层(Data Link)	网络接口层	 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理层(Physical)		             IEEE 802.1A, IEEE 802.2到IEEE 802.11

2、OSI七层模型

OSI七层网络模型	功能
应用层(Application)	直接向用户提供服务,文件传输、电子邮件、文件服务、虚拟终端
表示层(Presentation)	数据格式化、代码转换、数据加密
会话层(Session)	    在两个会话实体间建立和使用连接、解除连接
传输层(Transport)	    提供可靠的端到端的差错和流量控制,保证报文的正确传输
网络层(Network)	    通过路由选择算法,为报文或分组通过通信子网选择最适当的路径
数据链路层(Data Link)	传输有地址的帧,错误检测功能
物理层(Physical)	    以二进制数据形式在物理媒体上传输数据

3、七层的具体功能

物理层
在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层。
物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。
物理层的接口包含4个特性:
机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等
电器特性:指明在接口电缆的各条线上出现的电压范围。
功能特性:指明某条线上出现的某一电平的电压表示何种意义。
过程特性:指明对于不同功能的各种可能事件的出现顺序。
数据链路层
数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。
该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。
MAC子层的主要任务
是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;
LLC子层的主要任务
是建立和维护网络连接,执行差错校验、流量控制和链路控制。
数据链路层的具体工作
是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
网络层
网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层。它在下两层的基础上向资源子网提供服务。其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
一般地,数据链路层是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。例如在广域网之间通信时,必然会遇到路由(即两节点间可能有多条路径)选择问题。 
在实现网络层功能时,需要解决的主要问题如下:
 寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
 交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。
 路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
 连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。
传输层
OSI下3层的主要任务是数据通信,上3层的任务是数据处理。而传输层(Transport Layer)是OSI模型的第4层。因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。
该层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的作用是向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。该层常见的协议:TCP/IP中的TCP协议、Novell网络中的SPX协议和微软的NetBIOS/NetBEUI协议。
传输层提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时,对数据进行分割。然后,传输层将数据传递到网络层,并确保数据能正确无误地传送到网络层。因此,传输层负责提供两节点之间数据的可靠传送,当两节点的联系确定之后,传输层则负责监督工作。综上,传输层的主要功能如下:
传输连接管理:提供建立、维护和拆除传输连接的功能。传输层在网络层的基础上为高层提供“面向连接”和“面向无接连”的两种服务。
处理传输差错:提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、差错控制和流量控制。在提供“面向连接”服务时,通过这一层传输的数据将由目标设备确认,如果在指定的时间内未收到确认信息,数据将被重发。
监控服务质量。
 会话层
会话层(Session Layer)是OSI模型的第5层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
用户可以按照半双工、单工和全双工的方式建立会话。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。域名(DN)就是一种网络上使用的远程地址例如:www.3721.com就是一个域名。会话层的具体功能如下:
会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。
会话流量控制:提供会话流量控制和交叉会话功能。
寻址:使用远程地址建立会话连接。
出错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠正错误。会话控制和远程过程调用均属于这一层的功能。但应注意,此层检查的错误不是通信介质的错误,而是磁盘空间、打印机缺纸等类型的高级错误。
表示层
表示层(Presentation Layer)是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。表示层的具体功能如下:
数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
数据的编码:处理字符集和数字的转换。例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此,在设备之间需要具有在不同字符集或格式之间转换的功能。
压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。
数据的加密和解密:可以提高网络的安全性。
应用层
应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。
应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。上述的各种网络服务由该层的不同应用协议和程序完成,不同的网络操作系统之间在功能、界面、实现技术、对硬件的支持、安全可靠性以及具有的各种应用程序接口等各个方面的差异是很大的。应用层的主要功能如下:
用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。
实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。

4、OSI7层模型的小结

由于OSI是一个理想的模型,因此一般网络系统只涉及其中的几层,很少有系统能够具有所有的7层,并完全遵循它的规定。
在7层模型中,每一层都提供一个特殊的网络功能。
从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)
主要提供数据传输和交换功能,即以节点到节点之间的通信为主;
第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;
而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。
简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。

三、TCP/IP四层协议

1、TCP四层协议的内容
TCP/IP协议族可按层次划分为四层
从上层到底层为:应用层,传输层,网络层, 数据链路层。
2、为什么要分层进行设计,为什么又是按照这四个层级进行划分?
假设整个协议都是一个整体,没有进行层次化的设计,
那么如果协议需要进行调整的时候,那就需要对整个协议进行修改。
但是,进行分层解耦之后,每一层的内容相对独立,互不影响。
需要进行变更的时候就只需要针对某一层的协议内容进行做变动,不会影响到其他几层的内容。
其实和开发过程中的模块封装解耦一样。
有的同学会有疑问,网络模型不是七层的吗?
这里怎么变成了四层。其实将这四层在再次细分划出去之后也就变成了七层模型。
3、四层模型每层的作用以及整体是如何实现通信的
通信的整体结构图
 
应用层:
应用层决定这次通信的应用类型,比如说FTP、DNS、SMTP等等,同时HTTP协议也属于应用层的范围。通俗来讲,应用层决定这一次通信要干嘛。

传输层:
传输层提供两台计算机之间的数据传输,传输层中包含着两个很叼的协议,分别是TCP和UDP协议。面试中经常提及的三次握手,四次挥手就是TCP协议的部分内容

网络层:
网络层则是用来处理这些流动的数据包,也就是如果把相应的数据包路由到指定的地点,为通信时的网络传输选择传输路线

数据链路层:
数据链路层包含了软件与硬件的接口部分,以及各种网络设备的硬件,也就是整个网络通信过程中最底层的基础设施
4、以访问google.com为例说明整体的http请求到响应的过程
简单了解了每一层的作用之后,我们试着串起来
摸索一下一次整体的http请求到响应的过程。
拿访问google做个例子

0.访问google.com,按下回车。

1.应用层准备好请求报文,通过DNS服务进行域名解析,得到google的ip地址,并将报文发到传输层。

2.传输层收到报文后,会将请求的数据包进行拆分,打包,并对每个包裹打上tag。在请求报文的基础上,加上一层TCP的首部信息,然后发往网络层。

3.到了网络层以后,IP协议就发挥了巨大的作用,IP协议中需要两个比较重要的信息,那就是ip地址和mac地址。ip已经在应用层通过dns解析出来了,那mac怎么办。。。真尴尬,然而这时ARP协议又冒了出来,它可以根据ip地址反向查询到目标主机的mac地址。好了,现在啥都有了,打包带走,把数据发到数据链路层。

4.终于走到基础设施这里了,此时数据包就在一根根光纤中旋转跳跃的奔向目的地,当然,整个过程不一定是直达的,可能需要经过各种中转站,就跟坐火车转车一样的。

5.请求到达服务器后,先从数据链路层往上走,并验证消去以太网首部信息,在网络层消去IP首部,在传输层消去TCP首部,就像剥洋葱一样一层一层去皮,最后剩下的就请求报文。在应用层对请求做出处理之后,需要对请求返回一个响应。而整个响应的传输过程就和请求一样,一层一层的封装,响应到达客户端时再一层一层的消去首部,最后呈现响应的结果。

四、HTTP协议

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,
它通常运行在TCP之上。
它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
请求和响应消息的头以ASCII形式给出。
而消息内容则具有一个类似MIME的格式。
这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

1、状态码

1xx:信息

100 Continue
服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。
101 Switching Protocols
服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。
2xx:成功

200 OK
请求成功(其后是对GET和POST请求的应答文档。)
201 Created
请求被创建完成,同时新的资源被创建。
202 Accepted
供处理的请求已被接受,但是处理未完成。
203 Non-authoritative Information
文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝。
204 No Content
没有新文档。浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
205 Reset Content
没有新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。
206 Partial Content
客户发送了一个带有Range头的GET请求,服务器完成了它。
3xx:重定向

300 Multiple Choices
多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。
301 Moved Permanently
所请求的页面已经转移至新的url。
302 Found
所请求的页面已经临时转移至新的url。
303 See Other
所请求的页面可在别的url下被找到。
304 Not Modified
未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy
客户请求的文档应该通过Location头所指明的代理服务器提取。
306 Unused
此代码被用于前一版本。目前已不再使用,但是代码依然被保留。
307 Temporary Redirect
被请求的页面已经临时移至新的url。
4xx:客户端错误

400 Bad Request
服务器未能理解请求。
401 Unauthorized
被请求的页面需要用户名和密码。
401.1
登录失败。
401.2
服务器配置导致登录失败。
401.3
由于ACL对资源的限制而未获得授权。
401.4
筛选器授权失败。
401.5
ISAPI/CGI应用程序授权失败。
401.7
访问被Web服务器上的URL授权策略拒绝。这个错误代码为IIS 6.0所专用。
402 Payment Required
此代码尚无法使用。
403 Forbidden
对被请求页面的访问被禁止。
403.1
执行访问被禁止。
403.2
读访问被禁止。
403.3
写访问被禁止。
403.4
要求SSL。
403.5
要求SSL 128403.6
IP地址被拒绝。
403.7
要求客户端证书。
403.8
站点访问被拒绝。
403.9
用户数过多。
403.10
配置无效。
403.11
密码更改。
403.12
拒绝访问映射表。
403.13
客户端证书被吊销。
403.14
拒绝目录列表。
403.15
超出客户端访问许可。
403.16
客户端证书不受信任或无效。
403.17
客户端证书已过期或尚未生效。
403.18
在当前的应用程序池中不能执行所请求的URL。这个错误代码为IIS 6.0所专用。
403.19
不能为这个应用程序池中的客户端执行CGI。这个错误代码为IIS 6.0所专用。
403.20
Passport登录失败。这个错误代码为IIS 6.0所专用。
404 Not Found
服务器无法找到被请求的页面。
404.0
(无)–没有找到文件或目录。
404.1
无法在所请求的端口上访问Web站点。
404.2
Web服务扩展锁定策略阻止本请求。
404.3
MIME映射策略阻止本请求。
405 Method Not Allowed
请求中指定的方法不被允许。
406 Not Acceptable
服务器生成的响应无法被客户端所接受。
407 Proxy Authentication Required
用户必须首先使用代理服务器进行验证,这样请求才会被处理。
408 Request Timeout
请求超出了服务器的等待时间。
409 Conflict
由于冲突,请求无法被完成。
410 Gone
被请求的页面不可用。
411 Length Required
"Content-Length"未被定义。如果无此内容,服务器不会接受请求。
412 Precondition Failed
请求中的前提条件被服务器评估为失败。
413 Request Entity Too Large
由于所请求的实体的太大,服务器不会接受请求。
414 Request-url Too Long
由于url太长,服务器不会接受请求。当post请求被转换为带有很长的查询信息的get请求时,就会发生这种情况。
415 Unsupported Media Type
由于媒介类型不被支持,服务器不会接受请求。
416 Requested Range Not Satisfiable
服务器不能满足客户在请求中指定的Range头。
417 Expectation Failed
执行失败。
423
锁定的错误。
5xx:服务器错误

500 Internal Server Error
请求未完成。服务器遇到不可预知的情况。
500.12
应用程序正忙于在Web服务器上重新启动。
500.13
Web服务器太忙。
500.15
不允许直接请求Global.asa。
500.16
UNC授权凭据不正确。这个错误代码为IIS 6.0所专用。
500.18
URL授权存储不能打开。这个错误代码为IIS 6.0所专用。
500.100
内部ASP错误。
501 Not Implemented
请求未完成。服务器不支持所请求的功能。
502 Bad Gateway
请求未完成。服务器从上游服务器收到一个无效的响应。
502.1
CGI应用程序超时。
502.2
CGI应用程序出错。
503 Service Unavailable
请求未完成。服务器临时过载或宕机。
504 Gateway Timeout
网关超时。
505 HTTP Version Not Supported
服务器不支持请求中指明的HTTP版本。

2、三次握手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器端开始传送数据。

3、四次挥手

第一次挥手:客户端A发送一个FIN.用来关闭客户A到服务器B的数据传送

第二次挥手:服务器B收到这个FIN. 它发回一个ACK,确认序号为收到的序号+1。和SYN一样,一个FIN将占用一个序号

第三次挥手:服务器B关闭与客户端A的连接,发送一个FIN给客户端A

第四次挥手:客户端A发回ACK报文确认,并将确认序号设置为序号加1

4、HTTP协议关键字段

Request URL:请求的URL地址

Request Method:GET,这里表示请求的类型是GET类型,常见的还有POST类型、PUT类型、DELETE类型。

Status Code:200OK,这里的200OK是HTTP的响应状态码,200表示正常,没有错误信息。

Cookie:Cookie 表示一个保存在客户机中的简单的文本文件, 这个文件与特定的Web文档关联在一起, 保存了该客户机访问这个Web文档时的信息, 当客户机再次访问这个Web文档时这些信息可供该文档使用。

Host:这里的Host指的是网站的网络服务器。

Content-Type:内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件。

User-Agent:User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值