zoukankan      html  css  js  c++  java
  • Story Of Web Background

    我们每天都会浏览很多网站,涉及学习,娱乐,购物等多方面。

    诸如百度,淘宝,京东等,当我们搜索关键词 或直接输入网址后,那么我们看到的网页,后台都发生了些什么?

    详情如下:

    1、发送http请求

      以京东为例,浏览器地址栏里输入京东域名www.jd.com,回车(发送http请求)。

    如果是客户端,是C/S架构软件,即Client/Server  (客户端/服务器)

    本文提到的是B/S架构软件即Browser/Server(浏览器/服务器架构)。它是一种特殊的CS架构,所有的客户端统一成浏览器。提供一个入口。是未来软件发展的趋势。

    2、找到目标服务器

      服务器跟电脑差不多,由CPU,内存,硬盘等构成。由于需要提供稳定的服务。在安全性,稳定性,可操作性,可维护方面都有较高的要求。

    浏览网站肯定是找web服务器。

    3、首先,浏览器进行域名解析,获取www.jd.com对应服务器的ip地址

    IP就相当于公司地址,域名就相当于公司名。端口就是公司里提供不同服务的窗口,服务器就负责提供具体的服务。(想用什么服务就必须打开对应的端口)

    大概的解析过程如下:

      浏览器先查询本地hosts文件。如果hosts文件里有域名对应的IP地址,那么返回给浏览器此IP地址。如果hosts文件里没有对应的ip地址则使用DNS协议来获取ip。在DNS协议中,PC会向你的本地DNS服务器求助(一般是路由器),希望从本地DNS服务器那里得到对应的IP,得到就返回此ip,得不到还得向更高层次的DNS服务器求助,最终总能得到对应的IP。就是先去hosts文件里找ip,找到就用,找不到就去DNS服务器里找,最终总能找到www.tmall.com对应的ip。

    虽然已经知道IP,但还不够,你还得知道中间的路径即中间经过哪些路由器。你的数据会经过一个又一个路由器,OSPF协议决定了会经过哪些路由器(用一种叫路由算法的玩意,找出最佳路径);从一个路由器怎么传给下一个路由器?这是ARP协议的工作,ARP负责求下一个节点的地址(我们不止是要目的地,还要中间节点的地址)

    比如说,你在上海,你知道北京的地理位置,然鹅,你还得知道中间经过哪些城市,怎么从这个城市到下一个城市才能到北京。

    综上所述:IP协议确定了本机和目标服务器2个IP地址。而OSPF协议决定从本机到目标服务器中间经过哪些路由器。ARP协议决定怎么从一个路由器传给下一个路由器。

    4、与目标服务器建立TCP链接 (三次握手)

    通过IP协议找到了要访问的目标服务器,还需要与目标服务器建立链接。确保你俩能正常交流。

    接下来,建立链接,而建立链接就用到了TCP协议。TCP是Transmission Control Protocol的缩写,直译就是传输控制协议的意思,很明显,它就是传输用的,官方解释长这样:TCP是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。

    根据OSI模型,网络通信的工作分为7层,分别是物理层数据链路层、网络层、传输层会话层表示层应用层。此模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。顺便一提,OSI模型是ISO(国际标准化组织)制定的。

     
     
     
     

    TCP协议规定本机与目标服务器建立链接的方式被称为三次握手。

     
     

    通俗说就是

     
    图片来自CSDN上Neo233的帖子

    5、http请求传输数据(get和post方法)

    终于成功的与京东服务器建立了链接,此时http协议的请求信息经过OSI模型的层层封装终于可以发送给京东服务器了,京东服务器又经过OSI模型层层解封之后,解析出请求方的请求内容,寻找资源,反向封装成http响应包,发送给本机,本机又经过层层解封装,到达应用层

     
     

    6、呈现页面

    得到的http响应包是一些HTML文件,很明显的,它里面还会引用各种各样的文件,像css文件啦,js文件啦,php文件啦。怎么办,再去要呗。比如php文件,京东的web服务器加载php模块,php又去请求数据库服务器,然后返回结果给web服务器,再把响应包返回给本机,本机浏览器经过渲染,最终把完整页面显示出来。

     
     7、与目标服务器断开链接(四次分手)
     
     

    来源:https://www.jianshu.com/p/90edd34374aa
  • 相关阅读:
    邻接矩阵有向图的介绍
    Oracle库Delete删除千万以上普通堆表数据的方法
    Oracle 11g静默安装软件+手工创建数据库
    Oracle基础维护02-表、主键、索引、表结构维护手册
    批处理:Windows主机通过FTP下载远程Linux主机上文件
    Vertica license导入最佳实践
    各类数据库问题描述模板
    Oracle同义词+dblink的实际应用
    Oracle数据逻辑迁移综合实战篇
    Greenplum 数据库安装部署(生产环境)
  • 原文地址:https://www.cnblogs.com/MnineJane/p/8601322.html
Copyright © 2011-2022 走看看