• 问题:打开浏览器,在地址栏输入url到页面展现,整个过程发生了什么?
  • 图示:

  • 步骤:
1 用户输入网址,包括协议和域名。
2 浏览器先查找自身缓存有没有记录,没有的话再找操作系统缓存。
3 当浏览器在缓存中未查找到记录时,就会访问DNS服务器。本地DNS再使用迭代或递归一层层向上访问。
4 浏览器根据HTTP协议,依据查询而来的WEB服务器IP,向该IP发送请求报文,默认端口为80。报文包含请求内容,浏览器信息,本地缓存,cookie信息。
5 web服务器接收到请求,在本地目录查找对应的PHP文件。
6 PHP服务器打开php文件进行翻译。
7 如果碰到对应SQL数据需要的数据,就使用SQL查询语句查询数据库中的数据。
8 MySQL数据库提供数据,会反馈数据给PHP服务器。
9 PHP服务器将php文件翻译成静态html代码,发送给web服务器。
10 WEB服务器接收PHP服务器的html的代码,并反馈给浏览器让其下载。
11 浏览器收到web服务器响应,开始下载请求的所有资源。
12 浏览器边下载边解析,生成html和css树,组合二者并开始渲染页面。
13 浏览器将渲染后页面绘制出来呈现给用户。

浏览器与WEB服务器交互的更多相关文章

  1. AngularJs与Java Web服务器交互

    AngularJs是Google工程师研发的产品,它的强大之处不是几句话就能描述的,只有真正使用过的人才能体会到,笔者准备在这篇文章中,以一个简单的登录校验的例子说明如何使用AngularJs和Web ...

  2. Web浏览器与Web服务器之间的通信过程

     HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:1:建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连 ...

  3. http通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤

    http通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: (1)    建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成 ...

  4. 序列化和反序列化在浏览器和 Web 服务器之间传递的数据、加密解密

    js中数组不能传递到后台,需进行json序列化: var data = new Array(); data.push({para1:name,para2:answer}); string data = ...

  5. 转:浏览器与WEB服务器工作过程举例

    用户通过“浏览器”访问因特网上的WEB服务器,浏览器和服务器之间的信息交换使用超文本传输协议(HTTP--HyperText Transfer Protocol). 例:用户访问东南大学主页 Http ...

  6. 一个C#的与web服务器交互的HttpClient类

    using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Net ...

  7. ASP.NET CORE Web浏览器和Web服务器

    //web浏览器 //浏览器本质的原理:浏览器向服务器发请求,服务器把请求的内容返回给浏览器,然后浏览器把返回的内容绘制成一个图形化的界面 //Socket一种通讯交流的技术 //qq用户把信息通过s ...

  8. 浏览器获取WEB服务器时间

    /* * 获取XMLHttpRequest对象 */ function CreateXMLHttpRequest() { var xmlreq = false; if (window.ActiveXO ...

  9. web 服务器、PHP、数据库、浏览器是如何实现动态网站的

    发送请求:浏览器根据用户输入的域名,运用DNS缓存或请求本地DNS服务器解析等获得对应IP地址,使用HTTP协议发送请求报文(含请求内容.浏览器信息.本地缓存.cookie等) 返回数据:web服务器 ...

随机推荐

  1. Linux中LAMP构架的实现

    LAMP:Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度共同组 ...

  2. vue父组件给子组件传值:属性的形式

    1.父组件怎么传值 2.子组件怎么接受值:依赖props 父页面定义的参数接收返回值,到子组件依旧用定义好的参数,在定义参数的类型,然后渲染数据

  3. 2.1JAVA基础复习——JAVA语言的基础组成注释和常量变量

    JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号 ...

  4. 【js】高阶函数是个什么?

    所谓高阶函数,就是函数中可以传入另一个函数作为参数的函数. 简单一张图,方便理解全文. function 高阶函数(函数){} 这是一个高阶函数,f是传入的函数作为参数. 其实高阶函数用的很多.其实平 ...

  5. 基于CentOS安装FTP服务器

    操作系统环境: CentOS Linux release 7.4.1708 (Core) 使用yum安装ftp服务: yum install -y vsftpd 添加系统用户作为登录ftp服务器并修改 ...

  6. raphael参数说明

    大纲 :first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style]) h1, .markdown-pr ...

  7. hibernate HQL添加语句

    1.Hibernate HQL添加语句 save();方法使用HQL语句来完成插入操作是不能实现的,不管你使用insert into....values...还是insert into.....sel ...

  8. flutter常规错误

    https://blog.csdn.net/mo_feng_/article/details/85104013

  9. 工作中常用的 Shell 命令及技巧

    调试 bash 脚本的技巧 加 -x 参数运行 bash 脚本时,会显示执行的语句 # 也可以在 demo.sh 中加上 set -x bash -x demo.sh 设置环境变量,然后通过如上方式运 ...

  10. css3常用动效以及总结

    (迁移自旧博客2017 08 06) CSS3 文本效果: box-shadow:盒子阴影,可以给卡片添加提高美化效果.可广泛应用于内容展示页面. <div class="card&q ...