zoukankan      html  css  js  c++  java
  • 了解web及网络基础

      从这里开始,接下来的都是关于HTTP的介绍。为了尽可能的理解HTTP协议,笔记将结合图解来描述讲解HTTP。关于web以及HTTP的历史有兴趣的可以自行百度。这里就略过了。

    认识HTTP

      HTTP是一种超文本传输协议(Hypertext Transfer Protocol),从字面上还可以这样理解:超文本(Hypertext),传输(Transfer),协议(Protocol)。

    关系如下:

     网络基础TCP/IP

      在深入了解HTTP之前,先来了解一下TCP/IP协议族。

      通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的。而HTTP属于它内部的一个子集。

      计算机与网络设备想要互相通信,则双方要基于相同的方法、规则。不同硬件、操作系统之间的通信,这所有的一切都需要一种规则,在这里我们统称为协议(Protocol)。

     

     TCP/IP的分层管理

     TCP/IP协议族按层次分别分为4层:应用层、传输层、网络层、数据链路层。

    应用层:

    决定了向用户提供应用服务是通信的活动.TCP/IP协议族内预存了通用的应用服务.比如,FTP和DNS服务就是其中的两类.HTTP协议也在其中.

    传输层:

    传输层对应上层应用层,提供处于网络连接中的两台计算机之间的数据传输.

    在传输层有两个不同的协议:TCP(传输控制协议)和UDP(用户数据报协议).

    网络层:

    网络层用来处理在网络上流动的数据包.数据包是网络传输的最小单位.该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传给对方.

    链路层(又名数据链路层,网络接口层):

    用来处理链接网络的硬件部分.包括控制操作系统,硬件的设别驱动,NIC(网络适配器,即网卡),以及光纤等物理可见部分.

     TCP/IP通信传输流

       如上图,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。

      用HTTP距离说明,首先作为客户端在应用层发出一个想看某个web页面的请求。

      接着为了传输方便,在传输层(TCP协议)把从应用层出收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号以及端口号后转发各网络层。

      在网络层(IP协议),增加作为通信目的的MAC地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。

      接收端的服务器在链路层接收到数据,按顺序往上层发送,一直到应用层,此时服务端才算真正接收到客户端发送过来的请求。

       发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层之间传输数据时,每经过一层时会将对应的首部消去。

      这种把数据信息包装起来的做法称为封装。

     
  • 相关阅读:
    Java基础——clone()方法浅析
    Unity shader error: “Too many texture interpolators would be used for ForwardBase pass”
    ar 解压一个.a文件报错: xxx.a is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
    How to set up "lldb_codesign" certificate!
    Unity-iPhone has Conflicting Provisioning Settings
    ETC1/DXT1 compressed textures are not supported when publishing to iPhone
    Xcode 提交APP时遇到 “has one iOS Distribution certificate but its private key is not installed”
    XCode iOS之应用程序标题本地化
    苹果电脑(Mac mini或Macbook或iMac)恢复出厂设置
    Unity 4.7 导出工程在XCode10.1上编译报错
  • 原文地址:https://www.cnblogs.com/qinjunlin/p/13682183.html
Copyright © 2011-2022 走看看