精华内容
下载资源
问答
  • ISO于1978年开发的一套标准架构ISO模型,被引用来说明数据通信协议的结构和功能。 OSI在功能上可以划分为两组: 网络群组:物理层、数据链路层、网络层 使用者群组:传输层、会话层、表示层、应用层 -----------...

    1、OSI的七层模型是什么?

    ISO于1978年开发的一套标准架构ISO模型,被引用来说明数据通信协议的结构和功能。

    OSI在功能上可以划分为两组:

    网络群组:物理层、数据链路层、网络层

    使用者群组:传输层、会话层、表示层、应用层

    -----------------------------------------------------------------------------------------------------------------------------------

    OSI七层网络模型      TCP/IP四层概念模型           对应网络协议

    -----------------------------------------------------------------------------------------------------------------------------------

    7:应用层                                               TFTP(简单文本传输协议)、FTP、

                                                                    NFS(数域筛法,数据加密)、WAIS(广域信息查询系统)

     

    6:表示层                  应用层                  Telnet(internet远程登陆服务的标准协议)、

                                                                    Rlogin、SNMP(网络管理协议)、Gopher

     

    5:会话层                                               SMTP(简单邮件传输协议)、DNS(域名系统)

    ------------------------------------------------------------------------------------------------------------------------------------

    4:传输层                  传输层                  TCP(传输控制协议)、UDP(用户数据报协议)

    ------------------------------------------------------------------------------------------------------------------------------------

    3:网络层                  网际层                  IP(网络之间的互联协议)、ICMP(internet控制报文协议)

                                                                   ARP(地域解析协议)、RARP、AKP、

                                                                   UUCP(Unix to Unix copy)

    --------------------------------------------------------------------------------------------------------------------------------------

    2:数据链路层           网络接口              FDDI(光纤分布式数据接口)、Ethernet、Arpanet

                                                                   PDN(公用数据网)、SLIP(串行线路网际协议)

                                                                   PPP(点对点协议,通过拨号或专线方式建立点对点连接发送数据)

    1:物理层                                               IEEE 802.1.A、IEEE 802.2

    ---------------------------------------------------------------------------------------------------------------------------------------

    其中高层(7、6、5、4层)定义了应用程序的功能,下面三层(3、2、1层)主要面向通过网络的端到端的数据流

     

    2、tcp/udp属于哪一层?

    传输层

     

    3、tcp/udp有哪些优缺点?

    (1)tcp是面向连接的,udp是面向无连接的

    tcp在通信之前必须通过三次握手机制与对方建立连接,而udp通信不必与对方建立连接,不管对方的状态就直接把数据发送给对方

    (2)tcp连接过程耗时,udp不耗时

    (3)tcp连接过程中出现的延时增加了被攻击的可能,安全性不高,而udp不需要连接,安全性较高

    (4)tcp是可靠的,保证数据传输的正确性,不易丢包,udp是不可靠的,易丢包

    tcp可靠的四大手段:

    顺序编号:tcp在传输文件的时候,会将文件拆分为多个tcp数据包,每个装满的数据包大小大约在1k左右,tcp协议为保证可靠传输,会将这些数据包顺序编号

    确认机制:当数据包成功的被发送方发送给接收方,接收方会根据tcp协议反馈给发送方一个成功接收的ACK信号,信号中包含了当前包的序号

    超时重传:当发送方发送数据包给接收方时,会为每一个数据包设置一个定时器,当在设定的时间内,发送方仍没有收到接收方的ACK信号,会再次发送该数据包,直到收到接收方的ACK信号或者连接已断开

    校验信息:tcp首部校验信息较多,udp首部校验信息较少

    (5)tcp传输速率较慢,实时性差,udp传输速率较快

    tcp建立连接需要耗时,并且tcp首部信息太多,每次传输的有用信息较少,实时性差

    (6)tcp是流模式,udp是数据包模式

    tcp只要不超过缓冲区的大小就可以连续发送数据到缓冲区上,接收端只要缓冲区上有数据就可以读取,可以一次读取多个数据包,而udp一次只能读取一个数据包,数据包之间独立

     

    4、tcp/udp的使用场合?

    (1)对数据可靠性的要求。tcp适用于可靠性高的场合,udp适用于可靠性低的场合

    (2)应用的实时性。tcp有延时较大,udp演示较小

    (3)网络的可靠性。网络不好的情况下使用tcp,网络条件好的情况下,使用udp

     

    5、PPP协议属于哪一层协议?

    --》数据链路层

    展开全文
  • IPV4 IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基石的协议。1981年Jon Postel 在RFC791中定义了...传统的TCP/IP协议基于IPV4属于第二代互联网技术,核心技...

    IPV4
    IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基石的协议。1981年Jon Postel 在RFC791中定义了IP,Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星链路等等。局域网中最常用的是以太网。
    传统的TCP/IP协议基于IPV4属于第二代互联网技术,核心技术属于美国。它的最大问题是网络地址资源有限,从理论上讲,编址1600万个网络、40亿台主机。但采用A、B、C三类编址方式后,可用的网络地址和主机地址的数目大打折扣,以至IP地址已经枯竭。其中北美占有3/4,约30亿个,而人口最多的亚洲只有不到4亿个,中国截止2010年6月IPv4地址数量达到2.5亿,落后于4.2亿网民的需求。虽然用动态IP及Nat地址转换等技术实现了一些缓冲,但IPV4地址枯竭已经成为不争的事实。在此,专家提出IPV6的互联网技术,也正在推行,但IPV4的使用过过渡到IPV6需要很长的一段过渡期。中国主要用的就是ip4,在win7中已经有了ipv6的协议不过对于中国的用户们来说可能很久以后才会用到吧。
    传统的TCP/IP协议基于电话宽带以及以太网的电器特性而制定的,其分包原则与检验占用了数据包很大的一部分比例造成了传输效率低,网络正向着全光纤网络高速以太网方向发展,TCP/IP协议不能满足其发展需要。
    1983年TCP/IP协议被ARPAnet采用,直至发展到后来的互联网。那时只有几百台计算机互相联网。到1989年联网计算机数量突破10万台,并且同年出现了1.5Mbit/s的骨干网。因为IANA把大片的地址空间分配给了一些公司和研究机构,90年代初就有人担心10年内IP地址空间就会不够用,并由此导致了IPv6 的开发。
    IPv6
    IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。
    与IPV4相比,IPV6具有以下几个优势:
    一、IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
    二、IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
    三、IPv6增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
    四、IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
    五、IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。
    ---------------------
    作者:满天心
    来源:CSDN
    原文:https://blog.csdn.net/qq_33857502/article/details/57413995
    版权声明:本文为博主原创文章,转载请附上博文链接!

    【本文版权归“鲜枣课堂”和小枣君所有,未经授权,请勿转载】

    这一切,要从一个“神奇的公式”说起。。。

    一个神奇的公式

    就是这个公式。。。

    就是这个超简单的公式,蕴含了我们无线通信技术的博大精深。。。

    无论是往事随风的1G、2G、3G,还是意气风发的4G、5G,说来说去,都是在这个数学公式上做文章。。。

    且听我慢慢道来。。。

    有线?无线?……

    通信技术,无论什么黑科技白科技,只分两种——有线通信和无线通信

    我和你打电话,信息数据要么在空中传播(看不见、摸不着),要么在实物上传播(看得见、摸得着)。。。

    在有线介质上传播数据,想要高速很容易。。。

    实验室中,单条光纤最大速度已达到了26Tbps。。。是传统网线的两万六千倍。。。

    空中传播这部分,才是移动通信的瓶颈所在。。。

     

    所以,5G重点是研究无线这部分的瓶颈突破。

    好大一个波。。。

    大家都知道,电波和光波都属于电磁波。。。

    电磁波的频率资源有限,根据不同的频率特性,有不同的用途。。。

     

    我们目前主要使用电波进行通信。。。

    当然,光波通信也在崛起,例如可见光通信LiFi(LightFidelity)

    ▼图片来自网络

     

     

    不偏题,回到电波先。。。

    电波属于电磁波的一种,它的频率资源也是有限的。。。

    为了避免干扰和冲突,我们在电波这条公路上进一步划分车道,分配给不同的对象和用途。。。

     

    ▼不同频率电波的用途

     

     

     

    大家注意上面图中的红色字体。一直以来,我们主要是用中频~超高频进行手机通信的。。。

    例如经常说的“GSM900”、“CDMA800”,其实就是工作频段900MHz和800MHz的意思。。。

    目前主流的4G LTE,属于超高频和特高频。。。

    我们国家主要使用超高频:

     

     

    随着1G、2G、3G、4G的发展,使用的频率是越来越高的。。。

    为什么呢?

    因为频率越高,速度越快。。。

     

    这又是为什么呢? 

    因为频率越高,车道(频段)越宽。。。

     

     

    看懂了吧。。。车道按指数级扩大。。。

     

     

    更高的频率→更大的带宽→更快的速度

     

     

    5G的频段具体是多少呢?

    上个月,我们国家工信部下发通知,明确了我国的5G初始中频频段

    3.3-3.6GHz、4.8-5GHz两个频段

    同时,24.75-27.5GHz、37-42.5GHz高频频段正在征集意见。

    目前,国际上主要使用28GHz进行试验(这个频段也有可能成为5G最先商用的频段)。

    如果按28GHz来算,根据前文我们提到的公式:

     

     

    好啦,这个就是5G的第一个技术特点——

    毫米波

     

    继续,继续。。。

    既然,频率高这么好,你一定会问:“为什么以前我们不用高频率呢?”

    原因很简单——不是不想用。。。是用不起。。。

    电磁波的一个显著特点:频率越高(波长越短),就越趋近于直线传播(绕射能力越差)。。。

    而且,频率越高,传播过程中的衰减也越大。。。

    你看激光笔(波长635nm左右),射出的光是直的吧,挡住了就过不去了。。。

    再看卫星通信和GPS导航(波长1cm左右),如果有遮挡物,就没信号了吧。。。

    而且,卫星那口大锅,必须校准瞄着卫星的方向。。。稍微歪一点,都会有影响。。。

     

     

    如果5G用高频段,那么它最大的问题,就是覆盖能力会大幅减弱。

    覆盖同一个区域,需要的基站数量将大大超过4G。

     

     

    这就是为什么这些年,电信、移动、联通为了低频段而争得头破血流。。。

    基站就是要花钱买的啊。。。能不玩命争取么。。。

    有的频段甚至被称为——黄金频段。。。

     

     

    这也是为什么5G时代,运营商拼命怼设备商。。。

    甚至威胁要自己研发通信设备。。。

     

     

     

    所以,基于以上原因。。。

    在高频率的前提下,为了减轻覆盖方面的成本压力,5G必须寻找新的出路。。。

    首先,是微基站。

     

    微基站

     

    基站有两种,微基站和宏基站。看名字就知道,微基站很小,宏基站很大!

    以前都是大的基站,建一个覆盖一大片 ▼

     

     

    以后更多的将是微基站,到处都装,随处可见。

     

    ▼微基站 看上去是不是很酷炫?

     

     

     

    微基站的造型有很多种,灵活地与周围的环境相融合(伪装),不会让用户在心理上产生不适。。。

     

    提醒

    基站对人体健康不会造成影响。

             ——小枣君宣 

     

    而且,恰好相反,其实基站数量越多,辐射反而越小!

    你想一下,冬天,一群人的房子里,一个大功率取暖器好,还是几个小功率取暖器好?

    大功率方案▼

     

     

    小功率方案▼

     

     

    基站越小巧,数量越多,覆盖就越好,速度就越快。。。

     

     天线去哪了? 

     

    大家有没有发现,以前大哥大都有很长的天线,早期的手机也有突出来的小天线,为什么后来我们就看不到带天线的手机了?

     

     

    有人说,是因为信号好了,不需要天线了。。。

    其实不对。。。信号再好,也不能没有天线。。。

    更主要的原因是——天线变小了。。。

    根据天线特性,天线长度应与波长成正比,大约在1/10~1/4之间。

     

     

    频率越高,波长越短,天线也就跟着变短啦!

    毫米波,天线也变成毫米级。。。

    这就意味着,天线完全可以塞进手机的里面,甚至可以塞很多根。。。

    这就是5G的第三大杀手锏——

     

    Massive MIMO

    MIMO就是“多进多出”(Multiple-Input Multiple-Output),多根天线发送,多根天线接收。

     

    在LTE时代就已经有MIMO了,5G继续发扬光大,变成了加强版的Massive MIMO(Massive:大规模的,大量的)。

     

     

    手机都能塞好多根,基站就更不用说了。。。

    ▼以前的基站,天线就那么几根。。。

     

     

    5G时代,就不是按根来算了,是按“阵”。。。“天线阵列”。。。

    ▼天线多得排成阵了。。。一眼看去一大片的节奏。。。

     

     

    不过,天线之间的距离也不能太近。

    因为天线特性要求,多天线阵列要求天线之间的距离保持在半个波长以上。

    不要问我为什么,去问科学家。。。

     

    你是直的?还是弯的?

     

    大家都见过灯泡发光吧? 

    其实,基站发射信号的时候,就有点像灯泡发光。

    信号是向四周发射的,对于光,当然是照亮整个房间,如果只是想照亮某个区域或物体,那么,大部分的光都浪费了。。。

     

     

    基站也是一样,大量的能量和资源都浪费了。

    我们能不能找到一只无形的手,把散开的光束缚起来呢?

    这样既节约了能量,也保证了要照亮的区域有足够的光。

    答案是:可以。

    这就是——

     

    波束赋形

    波束赋形:

    在基站上布设天线阵列,通过对射频信号相位的控制,使得相互作用后的电磁波的波瓣变得非常狭窄,并指向它所提供服务的手机,而且能跟据手机的移动而转变方向。

    这种空间复用技术,由全向的信号覆盖变为了精准指向性服务,波束之间不会干扰,在相同的空间中提供更多的通信链路,极大地提高基站的服务容量。

     

    直的都能掰成弯的。。。还有什么是通信砖家干不出来的?

    别收我钱,行不行?

     

    在目前的通信网络中,即使是两个人面对面拨打对方的手机(或手机对传照片),信号都是通过基站进行中转的,包括控制信令和数据包。。。 

    而在5G时代,这种情况就不一定了。。。

    5G的第五大特点——D2D,也就是Device to Device。

    D2D

    5G时代,同一基站下的两个用户,如果互相进行通信,他们的数据将不再通过基站转发,而是直接手机到手机。。。

     

    这样,就节约了大量的空中资源,也减轻了基站的压力。

    不过,如果你觉得这样就不用付钱,那你就图样图森破了。。。

    控制消息还是要从基站走的,而且用着频谱资源,运营商爸爸怎么可能放过你。。。

    后记。。。

    相信大家通过本文对5G和她背后的通信知识已经有了深刻理解,而这一切,都只是源于一个如今小学生都能看懂的数学公式。。。

    通信技术并不神秘,5G作为通信技术皇冠上最耀眼的宝石,也不是什么遥不可及的创新革命技术,它更多是对现有通信技术的演进。

    正如一位高人所说——

    “通信技术的极限,并不是技术工艺方面的限制,而是建立在严谨数学基础上的推论,在可以遇见的未来是基本不可能突破的。”

    如何在科学原理的范畴内,进一步发掘通信的潜力,是通信行业众多奋斗者们孜孜不倦的追求。。。

    https://www.zhihu.com/question/53878059?sort=created

    展开全文
  • OSI七层模型各层分别有哪些协议及它们的功能在互联网中实际使用的是TCP/IP参考模型。实际存在的协议主要包括在:物理层、数据链路层、网络层、传输层和应用层。各协议也分别对应这5个层次而已。要找出7个层次所对应...

    OSI七层模型各层分别有哪些协议及它们的功能 

    在互联网中实际使用的是TCP/IP参考模型。实际存在的协议主要包括在:物理层、数据链路层、网络层、传输层和应用层。各协议也分别对应这5个层次而已。

    要找出7个层次所对应的各协议,恐怕会话层和表示层的协议难找到啊。。

           【1】物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换),这一层的数据叫做比特。

      【2】数据链路层:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问,这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

      【3】网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择,Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。

      【4】传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的), 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组,常常把这一层数据叫做段。

      【5】会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路,主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。

      【6】表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。

      【7】应用层:是最靠近用户的OSI层,这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

       以下列表是一些协议的归类,如果有错了或不对的地方,希望各位大神多多提出!其实在应用、表示和会话这三层之间的协议可共用(由于实际的网络协议将它们归了一类所致)

    应用层

    DHCP · DNS · FTP · Gopher ·GTP · HTTP · IMAP4 · IRC · NNTP · NTP · POP3 · RPC · RTCP · RTP ·RTSP · SIP · SMTP ·SNMP · SSH · SDP · SOAP .STUN. SSDP · TELNET · XMPP

    表示层

    HTTP/HTML · FTP · Telnet · ASN.1(具有表示层功能)

    会话层

    ADSP ·ASP ·H.245·ISO-SP ·iSNS ·NetBIOS ·PAP ·RPC·

    RTCP ·SMPP ·SCP ·SSH ·ZIP ·SDP(具有会话层功能)

    传输层 

    TCP · UDP · TLS · DCCP · SCTP ·RSVP · PPTP

    网络层

    IP (IPv4 · IPv6) · ICMP · ICMPv6 · IGMP ·IS-IS · IPsec · BGP · RIP · OSPF ·ARP · RARP

    数据链路层 

    Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ATM · DTM · 令牌环 · 以太网路 ·

    FDDI · 帧中继 · GPRS · EVDO · HSPA · HDLC · PPP · L2TP · ISDN ·STP

    物理层

    以太网路卡 · 调制解调器 · 电力线通信(PLC) · SONET/SDH(光同步数字传输网) · 

    G.709(光传输网络) · 光导纤维 · 同轴电缆 · 双绞线

    应用层

      · DHCP(动态主机分配协议)  · DNS (域名解析)  · FTP(File Transfer Protocol)文件传输协议  · Gopher (英文原义:The Internet Gopher Protocol 中文释义:(RFC-1436)网际Gopher协议)  · HTTP (Hypertext Transfer Protocol)超文本传输协议  · IMAP4 (Internet Message Access Protocol 4) 即 Internet信息访问协议的第4版本  · IRC (Internet Relay Chat )网络聊天协议  · NNTP (Network News Transport Protocol)RFC-977)网络新闻传输协议  · XMPP 可扩展消息处理现场协议  · POP3 (Post Office Protocol 3)即邮局协议的第3个版本  · SIP 信令控制协议  · SMTP (Simple Mail Transfer Protocol)即简单邮件传输协议  · SNMP (Simple Network Management Protocol,简单网络管理协议)  · SSH (Secure Shell)安全外壳协议

          . SSL: 安全套接字层协议;

      · TELNET 远程登录协议  · RPC (Remote Procedure Call Protocol)(RFC-1831)远程过程调用协议  · RTCP (RTP Control Protocol)RTP 控制协议  · RTSP (Real Time Streaming Protocol)实时流传输协议  · TLS (Transport Layer Security Protocol)传输层安全协议

      · SDP( Session Description Protocol)会话描述协议  · SOAP (Simple Object Access Protocol)简单对象访问协议  · GTP 通用数据传输平台  · STUN (Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议  · NTP (Network Time Protocol)网络校时协议传输层  ·TCP(Transmission Control Protocol)传输控制协议  · UDP (User Datagram Protocol)用户数据报协议  · DCCP (Datagram Congestion Control Protocol)数据报拥塞控制协议  · SCTP(STREAM CONTROL TRANSMISSION PROTOCOL)流控制传输协议  · RTP(Real-time Transport Protocol或简写RTP)实时传送协议  · RSVP (Resource ReSer Vation Protocol)资源预留协议  · PPTP ( Point to Point Tunneling Protocol)点对点隧道协议网络层IP(IPv4 · IPv6) Internet Protocol(网络之间互连的协议)ARP : Address Resolution Protocol即地址解析协议,实现通过IP地址得知其物理地址。RARP :Reverse Address Resolution Protocol 反向地址转换协议允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。ICMP :(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。ICMPv6:IGMP :Internet 组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于IP 主机向任一个直接相邻的路由器报告他们的组成员情况。RIP : 路由信息协议(RIP)是一种在网关与主机之间交换路由选择信息的标准。OSPF : (Open Shortest Path First开放式最短路径优先).BGP :(Border Gateway Protocol )边界网关协议,用来连接Internet上独立系统的路由选择协议IS-IS:(Intermediate System to Intermediate System Routing Protocol)中间系统到中间系统的路由选择协议.IPsec:“Internet 协议安全性”是一种开放标准的框架结构,通过使用加密的安全服务以确保在 Internet 协议 (IP) 网络上进行保密而安全的通讯。数据链路层  802.11 · 802.16 · Wi-Fi · WiMAX · ATM · DTM · 令牌环 · 以太网 · FDDI · 帧中继 · GPRS · EVDO · HSPA · HDLC · PPP · L2TP · ISDN物理层  以太网物理层 · 调制解调器 · PLC · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线

    OSI七层协议模型

    应用层协议需要掌握的是:

    HTTP(Hyper text transfer protocol)、FTP(file transfer protocol)、SMTP(simple mail transfer rotocol)、POP3(post office protocol 3)、IMAP4(Internet mail access protocol)

    c1ee3c40a08d400214fdf443878ae87e.png

    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 用户数据报协议

    91d7bb160b66014790d4c5ec346baeb4.png

    展开全文
  • TCP 协议有哪些字段,分别是什么意思? TCP 三次握手和四次挥手分别是怎么实现? 为什么 TCP 握手要三次,而挥手需要四次? UDP 协议有哪些字段,为什么不可靠还有用武之地? 当前内容版权归码字科技所有并授权...
  •  HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送... HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方...

    一、HTTP简介 

      HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

      HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

      HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是  HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

      HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

    二、主要特点 

      1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

      2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

      3、无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

      4、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
      5、支持B/S及C/S模式

    三、HTTP之URL 

      HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息

     

      URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。以下面这个URL为例,介绍下普通URL的各部分组成:

     

      http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

     

      从上面的URL可以看出,一个完整的URL包括以下几部分:
      1、协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

     

      2、域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用

     

      3、端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口

     

      4、虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

     

      5、文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

     

      6、锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

     

      7、参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

     

    四、URI和URL的区别 

      URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。

     

      Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的
      URI一般由三部组成:
      ①访问资源的命名机制
      ②存放资源的主机名
      ③资源自身的名称,由路径表示,着重强调于资源。

     

      URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。

     

      URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。
      采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL一般由三部组成:
      ①协议(或称为服务方式)
      ②存有该资源的主机IP地址(有时也包括端口号)
      ③主机资源的具体地址。如目录和文件名等

     

      URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java-net@java.sun.com。

     

      URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。这是因为 URI   还包括一个子类,即统一资源名称 (URN),它命名资源但不指定如何定位资源。上面的 mailto、news 和 isbn URI 都是 URN 的示例。

     

      在Java的URI中,一个URI实例可以代表绝对的,也可以是相对的,只要它符合URI的语法规则。而URL类则不仅符合语义,还包含了定位该资源的信息,因此它不能是相对的。
      在Java类库中,URI类不包含任何访问资源的方法,它唯一的作用就是解析。
      相反的是,URL类可以打开一个到达资源的流。

     

    五、HTTP之请求消息Request

      客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

     

      请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。 
      Get请求例子,使用Charles抓取的request:

     

    GET /562f25980001b1b106000338.jpg HTTP/1.1
    Host    img.mukewang.com
    User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
    Accept    image/webp,image/*,*/*;q=0.8
    Referer    http://www.imooc.com/
    Accept-Encoding    gzip, deflate, sdch
    Accept-Language    zh-CN,zh;q=0.8
    
      第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.

      GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。

      第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息

      从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等

      第三部分:空行,请求头部后面的空行是必须的

      即使第四部分的请求数据为空,也必须有空行。

      第四部分:请求数据也叫主体,可以添加任意的其他数据。

      这个例子的请求数据为空。

     

      POST请求例子,使用Charles抓取的request:
    POST / HTTP1.1
    Host:www.wrox.com
    User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
    Content-Type:application/x-www-form-urlencoded
    Content-Length:40
    Connection: Keep-Alive
    
    name=Professional%20Ajax&publisher=Wiley
    

     

      第一部分:请求行,第一行明了是post请求,以及http1.1版本。
      第二部分:请求头部,第二行至第六行。
      第三部分:空行,第七行的空行。
      第四部分:请求数据,第八行。

     

     

     

    六、HTTP之响应消息Response

      HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文

      

     

      第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

     

      第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)

     

      第二部分:消息报头,用来说明客户端要使用的一些附加信息

     

      第二行和第三行为消息报头,
      Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8

     

      第三部分:空行,消息报头后面的空行是必须的

     

      第四部分:响应正文,服务器返回给客户端的文本信息。

     

      空行后面的html部分为响应正文。

     

    七、HTTP请求方法 

      根据HTTP标准,HTTP请求可以使用多种请求方法。
      HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
      HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

      GET     请求指定的页面信息,并返回实体主体。
      HEAD     类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
      POST     向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
      PUT     从客户端向服务器传送的数据取代指定的文档的内容。
      DELETE      请求服务器删除指定的页面。
      CONNECT     HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
      OPTIONS     允许客户端查看服务器的性能。
      TRACE     回显服务器收到的请求,主要用于测试或诊断。
    

     

    八、HTTP工作原理 

      HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、  URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

     

      以下是 HTTP 请求/响应的步骤:

     

      1、客户端连接到Web服务器

     

      一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.oakcms.cn。

     

      2、发送HTTP请求

     

      通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

     

      3、服务器接受请求并返回HTTP响应

     

      Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

     

      4、释放连接TCP连接

     

      若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

     

      5、客户端浏览器解析HTML内容

     

      客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语  法对其进行格式化,并在浏览器窗口中显示。

     

      例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:

     

      1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;

     

      2、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;

     

      3、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;

     

      4、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;

     

      5、释放 TCP连接;

     

      6、浏览器将该 html 文本并显示内容;   

     

    九、HTTP状态码 

      

    状态代码状态信息含义
    100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)
    101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)
    200 OK 一切正常,对GET和POST请求的应答文档跟在后面。
    201 Created 服务器已经创建了文档,Location头给出了它的URL。
    202 Accepted 已经接受请求,但处理尚未完成。
    203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。
    204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
    205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。
    206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。
    300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
    301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
    302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求http://host/~user(缺少了后面的斜杠),有的服务器 返回301,有的则返回302。严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。
    303 See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。
    304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告 诉客户,原来缓冲的文档还可以继续使用。
    305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。
    307 Temporary Redirect 和302 (Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才能重定 向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只 能跟随对GET请求的重定向。(HTTP 1.1新)
    400 Bad Request 请求出现语法错误。
    401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填 写合适的Authorization头后再次发出请求。
    403 Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。
    404 Not Found 无法找到指定位置的资源。这也是一个常用的应答。
    405 Method Not Allowed 请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。(HTTP 1.1新)
    406 Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容(HTTP 1.1新)。
    407 Proxy Authentication Required 类似于401,表示客户必须先经过代理服务器的授权。(HTTP 1.1新)
    408 Request Timeout 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。(HTTP 1.1新)
    409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。(HTTP 1.1新)
    410 Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而 404表示由于未知的原因文档不可用。(HTTP 1.1新)
    411 Length Required 服务器不能处理请求,除非客户发送一个Content-Length头。(HTTP 1.1新)
    412 Precondition Failed 请求头中指定的一些前提条件失败(HTTP 1.1新)。
    413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头(HTTP 1.1新)。
    414 Request URI Too Long URI太长(HTTP 1.1新)。
    416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头。(HTTP 1.1新)
    500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求。
    501 Not Implemented 服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。
    502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。
    503 Service Unavailable 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个 Retry-After头。
    504 Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新)
    505 HTTP Version Not Supported 服务器不支持请求中所指明的HTTP版本。(HTTP 1.1新)

    十、System.Net.HttpStatusCode 

      

      1 namespace System.Net
      2 {
      3     //
      4     // 摘要:
      5     //     包含为 HTTP 定义的状态代码的值。
      6     public enum HttpStatusCode
      7     {
      8         //
      9         // 摘要:
     10         //     等效于 HTTP 状态 100。 System.Net.HttpStatusCode.Continue 指示客户端可以继续其请求。
     11         Continue = 100,
     12         //
     13         // 摘要:
     14         //     等效于 HTTP 状态为 101。 System.Net.HttpStatusCode.SwitchingProtocols 指示正在更改的协议版本或协议。
     15         SwitchingProtocols = 101,
     16         //
     17         // 摘要:
     18         //     等效于 HTTP 状态 200。 System.Net.HttpStatusCode.OK 指示请求成功,且请求的信息包含在响应中。 这是要接收的最常见状态代码。
     19         OK = 200,
     20         //
     21         // 摘要:
     22         //     等效于 HTTP 状态 201。 System.Net.HttpStatusCode.Created 指示请求导致已发送响应之前创建一个新的资源。
     23         Created = 201,
     24         //
     25         // 摘要:
     26         //     等效于 HTTP 状态 202。 System.Net.HttpStatusCode.Accepted 指示请求已被接受进行进一步处理。
     27         Accepted = 202,
     28         //
     29         // 摘要:
     30         //     等效于 HTTP 状态 203。 System.Net.HttpStatusCode.NonAuthoritativeInformation 指示返回的元信息来自而不是原始服务器的缓存副本,因此可能不正确。
     31         NonAuthoritativeInformation = 203,
     32         //
     33         // 摘要:
     34         //     等效于 HTTP 状态 204。 System.Net.HttpStatusCode.NoContent 指示已成功处理请求和响应是有意留为空白。
     35         NoContent = 204,
     36         //
     37         // 摘要:
     38         //     等效于 HTTP 状态 205。 System.Net.HttpStatusCode.ResetContent 指示客户端应重置 (而不是重新加载) 的当前资源。
     39         ResetContent = 205,
     40         //
     41         // 摘要:
     42         //     等效于 HTTP 206 状态。 System.Net.HttpStatusCode.PartialContent 指示根据包括字节范围的 GET 请求的请求的响应是部分响应。
     43         PartialContent = 206,
     44         //
     45         // 摘要:
     46         //     等效于 HTTP 状态 300。 System.Net.HttpStatusCode.MultipleChoices 指示所需的信息有多种表示形式。 默认操作是将此状态视为一个重定向,并按照与此响应关联的位置标头的内容。
     47         MultipleChoices = 300,
     48         //
     49         // 摘要:
     50         //     等效于 HTTP 状态 300。 System.Net.HttpStatusCode.Ambiguous 指示所需的信息有多种表示形式。 默认操作是将此状态视为一个重定向,并按照与此响应关联的位置标头的内容。
     51         Ambiguous = 300,
     52         //
     53         // 摘要:
     54         //     等效于 HTTP 状态 301。 System.Net.HttpStatusCode.MovedPermanently 指示已将所需的信息移动到的位置标头中指定的
     55         //     URI。 当收到此状态时的默认操作是遵循与响应关联的位置标头。
     56         MovedPermanently = 301,
     57         //
     58         // 摘要:
     59         //     等效于 HTTP 状态 301。 System.Net.HttpStatusCode.Moved 指示已将所需的信息移动到的位置标头中指定的 URI。 当收到此状态时的默认操作是遵循与响应关联的位置标头。
     60         //     当原始请求方法是 POST 时,重定向的请求将使用 GET 方法。
     61         Moved = 301,
     62         //
     63         // 摘要:
     64         //     等效于 HTTP 状态 302。 System.Net.HttpStatusCode.Found 指示所需的信息位于的位置标头中指定的 URI。 当收到此状态时的默认操作是遵循与响应关联的位置标头。
     65         //     当原始请求方法是 POST 时,重定向的请求将使用 GET 方法。
     66         Found = 302,
     67         //
     68         // 摘要:
     69         //     等效于 HTTP 状态 302。 System.Net.HttpStatusCode.Redirect 指示所需的信息位于的位置标头中指定的 URI。 当收到此状态时的默认操作是遵循与响应关联的位置标头。
     70         //     当原始请求方法是 POST 时,重定向的请求将使用 GET 方法。
     71         Redirect = 302,
     72         //
     73         // 摘要:
     74         //     等效于 HTTP 状态 303。 System.Net.HttpStatusCode.SeeOther 自动将客户端重定向到的位置标头中指定作为公告的结果的
     75         //     URI。 对指定的位置标头的资源的请求将会执行与 GET。
     76         SeeOther = 303,
     77         //
     78         // 摘要:
     79         //     等效于 HTTP 状态 303。 System.Net.HttpStatusCode.RedirectMethod 自动将客户端重定向到的位置标头中指定作为公告的结果的
     80         //     URI。 对指定的位置标头的资源的请求将会执行与 GET。
     81         RedirectMethod = 303,
     82         //
     83         // 摘要:
     84         //     等效于 HTTP 状态 304。 System.Net.HttpStatusCode.NotModified 指示客户端的缓存的副本是最新。 不会传输资源的内容。
     85         NotModified = 304,
     86         //
     87         // 摘要:
     88         //     等效于 HTTP 状态 305。 System.Net.HttpStatusCode.UseProxy 指示该请求应使用的位置标头中指定的 uri 的代理服务器。
     89         UseProxy = 305,
     90         //
     91         // 摘要:
     92         //     等效于 HTTP 状态 306。 System.Net.HttpStatusCode.Unused 是对未完全指定的 HTTP/1.1 规范建议的扩展。
     93         Unused = 306,
     94         //
     95         // 摘要:
     96         //     等效于 HTTP 状态 307。 System.Net.HttpStatusCode.TemporaryRedirect 指示请求信息位于的位置标头中指定的
     97         //     URI。 当收到此状态时的默认操作是遵循与响应关联的位置标头。 当原始请求方法是 POST 时,重定向的请求还将使用 POST 方法。
     98         TemporaryRedirect = 307,
     99         //
    100         // 摘要:
    101         //     等效于 HTTP 状态 307。 System.Net.HttpStatusCode.RedirectKeepVerb 指示请求信息位于的位置标头中指定的
    102         //     URI。 当收到此状态时的默认操作是遵循与响应关联的位置标头。 当原始请求方法是 POST 时,重定向的请求还将使用 POST 方法。
    103         RedirectKeepVerb = 307,
    104         //
    105         // 摘要:
    106         //     等效于 HTTP 状态 400。 System.Net.HttpStatusCode.BadRequest 指示无法由服务器理解此请求。 System.Net.HttpStatusCode.BadRequest
    107         //     如果没有其他错误适用,或者如果具体的错误是未知的或不具有其自己的错误代码发送。
    108         BadRequest = 400,
    109         //
    110         // 摘要:
    111         //     等效于 HTTP 状态 401。 System.Net.HttpStatusCode.Unauthorized 指示所请求的资源需要身份验证。 Www-authenticate
    112         //     标头包含如何执行身份验证的详细信息。
    113         Unauthorized = 401,
    114         //
    115         // 摘要:
    116         //     等效于 HTTP 状态 402。 System.Net.HttpStatusCode.PaymentRequired 已保留供将来使用。
    117         PaymentRequired = 402,
    118         //
    119         // 摘要:
    120         //     等效于 HTTP 状态 403。 System.Net.HttpStatusCode.Forbidden 指示服务器拒绝无法完成请求。
    121         Forbidden = 403,
    122         //
    123         // 摘要:
    124         //     等效于 HTTP 状态 404。 System.Net.HttpStatusCode.NotFound 指示所请求的资源不存在的服务器上。
    125         NotFound = 404,
    126         //
    127         // 摘要:
    128         //     等效于 HTTP 状态 405。 System.Net.HttpStatusCode.MethodNotAllowed 指示请求方法 (POST 或 GET)
    129         //     不允许对所请求的资源。
    130         MethodNotAllowed = 405,
    131         //
    132         // 摘要:
    133         //     等效于 HTTP 状态 406。 System.Net.HttpStatusCode.NotAcceptable 表示客户端已指定使用 Accept 标头,它将不接受任何可用的资源表示。
    134         NotAcceptable = 406,
    135         //
    136         // 摘要:
    137         //     等效于 HTTP 状态 407。 System.Net.HttpStatusCode.ProxyAuthenticationRequired 指示请求的代理要求身份验证。
    138         //     代理服务器进行身份验证标头包含如何执行身份验证的详细信息。
    139         ProxyAuthenticationRequired = 407,
    140         //
    141         // 摘要:
    142         //     等效于 HTTP 状态 408。 System.Net.HttpStatusCode.RequestTimeout 指示客户端的服务器预期请求的时间内没有未发送请求。
    143         RequestTimeout = 408,
    144         //
    145         // 摘要:
    146         //     等效于 HTTP 状态 409。 System.Net.HttpStatusCode.Conflict 指示该请求可能不会执行由于在服务器上发生冲突。
    147         Conflict = 409,
    148         //
    149         // 摘要:
    150         //     等效于 HTTP 状态 410。 System.Net.HttpStatusCode.Gone 指示所请求的资源不再可用。
    151         Gone = 410,
    152         //
    153         // 摘要:
    154         //     等效于 HTTP 状态 411。 System.Net.HttpStatusCode.LengthRequired 指示缺少必需的内容长度标头。
    155         LengthRequired = 411,
    156         //
    157         // 摘要:
    158         //     等效于 HTTP 状态 412。 System.Net.HttpStatusCode.PreconditionFailed 表示失败,此请求的设置的条件,无法执行请求。
    159         //     使用条件请求标头,如果匹配项,如设置条件无-If-match,或如果-修改-自从。
    160         PreconditionFailed = 412,
    161         //
    162         // 摘要:
    163         //     等效于 HTTP 状态 413。 System.Net.HttpStatusCode.RequestEntityTooLarge 指示请求来说太大的服务器能够处理。
    164         RequestEntityTooLarge = 413,
    165         //
    166         // 摘要:
    167         //     等效于 HTTP 状态 414。 System.Net.HttpStatusCode.RequestUriTooLong 指示 URI 太长。
    168         RequestUriTooLong = 414,
    169         //
    170         // 摘要:
    171         //     等效于 HTTP 状态 415。 System.Net.HttpStatusCode.UnsupportedMediaType 指示该请求是不受支持的类型。
    172         UnsupportedMediaType = 415,
    173         //
    174         // 摘要:
    175         //     等效于 HTTP 416 状态。 System.Net.HttpStatusCode.RequestedRangeNotSatisfiable 指示从资源请求的数据范围不能返回,或者因为范围的开始处,然后该资源的开头或范围的末尾后在资源的结尾。
    176         RequestedRangeNotSatisfiable = 416,
    177         //
    178         // 摘要:
    179         //     等效于 HTTP 状态 417。 System.Net.HttpStatusCode.ExpectationFailed 指示无法由服务器满足 Expect
    180         //     标头中给定。
    181         ExpectationFailed = 417,
    182         //
    183         // 摘要:
    184         //     等效于 HTTP 状态 426。 System.Net.HttpStatusCode.UpgradeRequired 指示客户端应切换到不同的协议,例如
    185         //     TLS/1.0。
    186         UpgradeRequired = 426,
    187         //
    188         // 摘要:
    189         //     等效于 HTTP 状态 500。 System.Net.HttpStatusCode.InternalServerError 表示在服务器上发生一般性错误。
    190         InternalServerError = 500,
    191         //
    192         // 摘要:
    193         //     等效于 HTTP 状态 501。 System.Net.HttpStatusCode.NotImplemented 指示服务器不支持所请求的功能。
    194         NotImplemented = 501,
    195         //
    196         // 摘要:
    197         //     等效于 HTTP 状态 502。 System.Net.HttpStatusCode.BadGateway 指示中间代理服务器从另一个代理或原始服务器接收到错误响应。
    198         BadGateway = 502,
    199         //
    200         // 摘要:
    201         //     等效于 HTTP 状态 503。 System.Net.HttpStatusCode.ServiceUnavailable 指示将服务器暂时不可用,通常是由于高负载或维护。
    202         ServiceUnavailable = 503,
    203         //
    204         // 摘要:
    205         //     等效于 HTTP 状态 504。 System.Net.HttpStatusCode.GatewayTimeout 指示中间代理服务器在等待来自另一个代理或原始服务器的响应时已超时。
    206         GatewayTimeout = 504,
    207         //
    208         // 摘要:
    209         //     等效于 HTTP 状态 505。 System.Net.HttpStatusCode.HttpVersionNotSupported 指示服务器不支持请求的
    210         //     HTTP 版本。
    211         HttpVersionNotSupported = 505
    212     }
    213 }

     

    转载于:https://www.cnblogs.com/hyunbar/p/10393887.html

    展开全文
  • 它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要...
  • http协议是一个属于应用层的面向对象协议,http是超文本传输协议的缩写,它是以传送www方式的传输超文本到本地浏览器的传送协议http是一个基于TCP/IP通信协议来传递数据(html文件,图片文件,查询结果等)http协议工作于...
  • tcp/ip知识点

    2021-05-08 20:54:27
    目的:记录tcp/ip的一些知识点,方便日后查阅。 知识点前言一、基础知识1、tcp/ip分层2、地址分类3、数据如何封装二、使用步骤1.引入库2....每一层有哪些代表协议: 2、地址分类 如何区分ip地址属于
  • 1面试官:看你简历说精通TCP和IP,那我们来讨论下网络模型和TCP、IP...2面试官:看你画的图,TCP有自己的首部结构,这都有哪些字段,最好说说它们的作用 朋友:TCP首部结构先是16位的源端口号和目标端口号、接着是32.
  • 图解HTTP协议笔记

    2020-12-15 23:01:21
    图解HTTP协议笔记 只做一些重点笔记,描述性文字就不一一赘述 TCP/IP协议簇 ...TCP/IP的分层有哪些 应用层、传输层、网络层、数据链路层 分层的好处:每个层次之间可以自由改动,而不需要大规模的改动整体,设
  • 这块知识从体系上属于 Linux 指令,同时也关联了很多计算机网络的知识,比如说 TCP/IP 协议、UDP 协议,我会在“模块七”为你简要介绍。 如果你对这部分指令背后的网络原理什么困惑,可以在评论区提问。另外,你...
  • 这块知识从体系上属于 Linux 指令,同时也关联了很多计算机网络的知识,比如说 TCP/IP 协议、UDP 协议,我会在“模块七”为你简要介绍。 如果你对这部分指令背后的网络原理什么困惑,可以在评论区提问。另外,你...
  • 整个HTTP协议请求的工作流程有哪些?以HTTP协议进行通信时,需要有客户端(即终端用户)和服务器端(即Web服务器),在Web客户端向Web服务器发送请求报文之前,先要通过TCP/IP协议在Web客户端和服务器之间建立一个TCP/IP...
  • TCP和UDP有哪些区别? TCP是面向连接的,UDP是面向无连接的。 什么是面向连接呢?就是在互通之前先建立连接。所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样...
  • 从网络协议的角度分析, web后台聚焦的是HTTP ,而C+ +后台更多聚焦的是TCP。web后台可 以看作是一个大后台最 靠前的东西,它解析了HTTP请求,然后可能层层转发给了后面整个分布式系统的许多组件,然后调用他们的服务。...
  • 网络整理续

    2018-12-13 01:10:03
    1、TCP 协议和 UDP 协议的区别有哪些? (1)TCP 属于面向连接的协议,UDP 属于面向无连接的协议 ; (2)TCP 可以保证数据可靠、有序的传输,可以进行流量控制,UDP 无法实现; (3)TCP 协议有效载荷小于 UDP 协议...
  • 2016年5月7日作业:1、关于TCP/IP协议集中,哪些属于网络层?哪些属于传输层?哪些属于应用层(记)答:网络层:IP ,ARP,RARP,ICMP传输层:TCP,UDP应用层:Telnet, FTP, SMTP, DNS, ...30年的有哪些?10年的有...
  • 3、传输层的协议有哪些?4、UDP数据报格式是怎样的? 1、传输层提供什么样的服务? 从通信和信息处理的角度看,运输层它上面的应用层提供通信服务,它属于面向通信的最高层,同时也是用户的最底层。 2、传输层的...
  • 网编

    2019-09-24 15:02:12
    属于数据链路层的设备有哪些? 路由器它属于七层模型中的哪一层? 以下哪些协议属于传输层? 一下哪些协议是应用层的协议 应用层 http https ftp snmp 传输层 tcp udp 四层路由器 四层交换机 网络层 ip 路由器 三...
  • 计算机网络知识整理

    2019-07-23 13:14:00
    一 OSI与TCP/IP各层的结构与功能,都有哪些协议 五层协议的体系结构 学习计算机网络时我们一般采用折中的办法,也就是中和OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。 ...
  • 课件 测验题 1.能够实现查询域名所对应的IP地址的命令是()。 ...2.TCP/IP体系结构中的传输层包含TCP和IP两种协议。...A....B....3.我们平时所用到的WiFi协议是...你们听到或见到过的协议有哪些? 大家听到或见到过的协...
  • 基础知识2020-4-8

    2020-04-08 14:18:22
    5简述TCP协议的四次挥手协议 答案 1 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议。TCP短连接:客户端向服务器发起请求,服务器接到请求,然后双方建立连接。客户端向服务器发送消息,...
  • 序列化协议有哪些,这些在序列化协议有什么区别?redission的写入的时候采用的是什么序列化协议?在使用RPC调用的时候,他的序列化是如何实现的? 灵魂拷问,感觉自己是个渣渣! 序列化和反序列化的概念 互联网的...
  • 网络基础知识

    2019-09-01 14:38:03
    基础知识 1 应用层协议是什么,和TCP有什么区别,最基本的HTTP协议的一些理解。 应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文,最知名...2 TCP的一些基本概念,首部多大且有哪些内容,三次...
  • 软考信息系统监理师:2016年5月6日作业 1、关于TCP/IP协议集中,哪些属于网络层?哪些属于传输层?哪些属于应用层(记)2、依据《国家电子政务工程建设项目档案管理暂行办法》,存档期限为永久的是哪个?30年的...
  • 浅谈HTTP

    2019-03-23 01:13:50
    通俗点就是指导客户端和服务器如何沟通的一种协议属于TCP/IP协议的一部分。 客户端发送请求,服务端收到请求后返回响应,那么请求和响应都有哪些秘密呢? 请求的格式 1 动词 路径 协议/版本 2 Key1: value1 2 Key...

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

属于tcp协议有哪些