• 了解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地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。

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

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

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

     
  • 相关阅读:
    CentOS7上安装Pycharm
    一个苹果证书怎么多次使用(授权Mac开发)——导出p12文件
    MAC上搭建Jenkins + Android + IOS自动开发部署环境
    Pivotal Cloud Foundry学习笔记(1)
    Ubuntu上部署tomcat后无法访问8080端口问题
    Ubuntu上部署Jenkins
    Ubuntu输入命令无效的问题
    python中发送post请求时,报错“Unrecognized token 'xxxx': was expecting ('true', 'false' or 'null')”
    pycharm的断点调试【转自https://blog.csdn.net/weixin_39198406/article/details/78873120】
    Python中的logging模块【转】https://www.cnblogs.com/yelin/p/6600325.html
  • 原文地址:https://www.cnblogs.com/qinjunlin/p/13682183.html
Copyright © 2020-2023  润新知