美文网首页个人技术栈
互联网信息交互理解

互联网信息交互理解

作者: Chinesszz | 来源:发表于2017-06-08 21:01 被阅读140次

    系统的了解一下,网络信息的交互,什么是互联网,在我们小时候,网络不发达的过去,我们的课本都是这样描述的,信息高速路,这个词是最准确的描述了。

    互联网的核心是数据data,当下我们在手机上进行各种网络活动,无一不是信息的传递,那么现在开始系统的介绍一下数据是如何传递的。

    image.png

    输入(input)->输出(output)。

    image.png

    信息的交互是这样的:

    客户端发送数据,服务端接受客户发送的数据请求,进行处理,然后返回给客户端,然后以某种格式显示给用户。

    举个:

    • 如果用户请求的是一个文本,那么在这个请求中会告诉服务端,我请求的类型是文本,也会告诉服务端,我的客户端支持那种文本的格式。服务端收到后知道这个客户端支持那种方法的文本即系,然后就会用这个类型处理二进制并返回数据,然后会告诉客户端文本的解析方式,然后去解析
    • 如果用户请求的是一个图片,那么和上面的过程一样。那么服务端也会返回二进制,但是会告诉客户端,要用打开图片的方式去解析

    请求是怎么产生的,请求是什么样的

    • Request
    URL:https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/mancard/css/card_min_dee38e45.css
    Request Method:GET
    Status Code:200 OK (from disk cache)
    Remote Address:58.215.118.32:443
    Referrer Policy:unsafe-url
    

    URL告诉他请求的地址是https://ss0.bdstatic.com,请求方式是GET,这个网址的ip地址是58.215.118.32,端口号是443,因为是HTTPS安全请求默认是443,HTTP是80端口

    那么客户端是怎么找到这个ip地址的呢?

    这个涉及到DNS解析[Domain Name System,域名系统],是什么意思呢?计算机首先在本地的host文件中。

    windows中位置是:C盘 -> Windows -> System32 -> drives -> etc -> hosts文件

    Mac中文职是:/etc/host

    如果找到就直接去找改地址请求,如果没有找到就会去你所在的局域网中的DNS 服务器中继续找,如果还没有就像当前dns服务所在的上级网络中的DNS查询,这个时间我们不用关心,因为这个速度是光速(光纤),那么如何知道自己的DNS服务器地址呢?

    windows中需要在cmd中输入ipconfig

    mac中需要在打开设置直接查看DNS服务地址

    那么ip我们介绍完了么?当然是没有的了。ip可是全世界的共享资源呀,只是是很多的。我们复习一下ip的知识。

    IP

    我们的互联网之所以互联就是因为使用了一个协议TCP/IP协议,关于这个协议,笔者在大二那年图书馆里面读过,记得是一个日本人写的两本书,但是名字就忘记了,之后就没有真正意义上读过,但是不知不觉了解了很多。但是里面涉及的政治和知识都很博大精深,笔者在大学那年看的是韩老师讲的,至今保存

    <<计算机网络原理>>

    这里做一个简短的介绍

    IP分为五类

    • A类地址
      • A类地址网络号范围:1.0.0.0---126.0.0.0
    • B类地址
    • B类地址网络号范围:128.0.0.0---191.255.0.0。
    • C类地址
      • C类地址网络号范围:192.0.0.0---223.255.255.0。
    • D类地址
      • D类地址范围:224.0.0.0---239.255.255.255
    • E类地址
      • E类地址范围:240.0.0.0---255.255.255.254

    详情的解析如果需要了解请看 教程

    我们每个计算的第地址保证是:192.168.1.XXX 最大不能超过255.

    image.png

    Port

    什么是端口呢?我们虽然能够通过一个IP地址,找到某一台计算机的位置,但是如何知道让计算机上的那个应用程序去处理呢?就是通过port知道某台计算机上的某一个应用程序的,比如mysql数据库是3306 ,rabbit是5672,tomcat默认是8080.一样,是不是这样解析就很明了,good,进行下一步。

    好了通过上面的IP:port,我们知道找那台计算机上的那个应用application去处理了,那么我们在深入了解一下,数据是如何通过网络传输的呢?

    这里我们在引入一个概念,这个概念笔者记忆尤深。笔者在读大二的网络经济学老师,特意在课堂上补充过。这个就是OSI模型

    OSI网络模型

    image.png

    于是就产生了这个响应Response,然后有浏览器去解析

    Response

    Response Headers
    Accept-Ranges:bytes
    Age:1327416
    Cache-Control:max-age=2592000
    Content-Encoding:gzip
    Content-Type:text/css
    Date:Thu, 08 Jun 2017 05:03:18 GMT
    ETag:W/"5886468e-cb5c"
    Expires:Thu, 22 Jun 2017 20:18:31 GMT
    Last-Modified:Mon, 23 Jan 2017 18:08:14 GMT
    Ohc-Response-Time:1 0 0 0 0 0
    Server:bfe/1.0.8.13-sslpool-patch
    Vary:Accept-Encoding
    

    我们开一下后端是如何处理,接受请求的

       /**
         * 保存订单到数据库
         * @param request 浏览器的请求体
         * @param response 响应对象
         * @return
         */
        @RequestMapping(value = "/shenghuojiaofei/v1/order", method = RequestMethod.POST)
        public ResponseBuilder.IResponseVo saveOrder( HttpServletRequest request,HttpServletResponse response) {
           ...处理逻辑信息
        }
    
    

    后端根据request或用户的请求信息,然后对数据进行处理,如果当处理不了,就去其他后台请求,然后把用户想要的信息,整理到response对象中返回

    .】这就是网络信息的一个前后端交互过程。

    但是真实交互远比这个复杂,比如tcp的三次握手四次挥手,在比如12306,双十一秒杀活动的高并发,里面涉及很多协议和通信技术,笔者不在这里描述,在以后的日子里,会娓娓道来。

    附录

    最后仅接合本文笔者推荐两本书

    • HTTP权威指南
    • TCP/IP详解

    相关文章

      网友评论

        本文标题:互联网信息交互理解

        本文链接:https://www.haomeiwen.com/subject/hnwtqxtx.html