在浏览器输入一个地址,点击回车键,我们就能看到一个页面。对于做web开发的我们,是否知道其中的详细流程,我们以tomcat为例,看看浏览器从发出请求http请求,到返回数据的全过程:

详细说明如下:

1.用户发出请求,包括点击或者输入网址等,给浏览器。

2.浏览器会发出TCP连接的请求,通过三次握手和服务器建立连接。

注意:http协议是基于tcp/ip协议的,http协议是应用层协议,tcp/ip协议是通信层协议,也就是tcp提供的是通信的管道。

3.服务器通过tcp/ip协议与浏览器建立连接。

4.和服务器的管道通了以后,浏览器会生成http请求格式的数据包。

5.浏览器发送http格式的请求包。

6.服务器接收到http请求的格式包,然后解析其中的参数。

7.执行请求。这个执行请求,指的是进行一些逻辑操作,查询操作,持久层操作等的。也就是我们开发通常的业务处理。

8.生成http格式的数据包,也就是7步骤的数据的进行一个封装,准备进行响应发送。

9.发送响应数据包。

10.浏览器接受到响应数据包,解析成http格式的数据包。

11.最后浏览器对数据进行渲染,呈现给用户。

浏览器发出http请求访问服务器的流程(B/S模式)相关推荐

  1. 浏览器访问服务器的流程

    1.浏览器输上域名,例如www.baidu.com 2.浏览器会先访问DNS服务器[DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 ...

  2. [转]掌握Ajax 第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 [IBM]

    转自:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步 ...

  3. 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求

    转http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 ...

  4. div置于页面底部_浏览器渲染页面的原理及流程

    浏览器渲染页面的原理及流程 浏览器将域名通过网络通信从服务器拿到html文件后,如何渲染页面呢? 1.根据html文件构建DOM树和CSSOM树.构建DOM树期间,如果遇到JS,阻塞DOM树及CSSO ...

  5. 浏览器渲染页面的原理及流程---------重绘与重排(回流)--优化

    浏览器渲染页面的原理及流程 浏览器将域名通过网络通信从服务器拿到html文件后,如何渲染页面呢? 1.根据html文件构建DOM树和CSSOM树.构建DOM树期间,如果遇到JS,阻塞DOM树及CSSO ...

  6. 前端百题斩【028】——浏览器中的请求们

    写该系列文章的初衷是"让每位前端工程师掌握高频知识点,为工作助力".这是前端百题斩的第28斩,希望朋友们关注公众号"执鸢者",用知识武装自己的头脑. 通过浏览器 ...

  7. ie浏览器如何创建ajax,唯独ie浏览器缓存ajax请求

    用fiddler调试http请求,在ie浏览器下,如果请求命中缓存,fiddler不会包含该请求.但是在chrome下会包含缓存的请求,Result显示为304. ie浏览器还会缓存通过ajax请求的 ...

  8. linux 服务器拦截http请求,详解Linux屏蔽浏览器上http请求警报的方法

    众所周知,在Linux系统中浏览器的页面上是不允许出现http请求的,如果出现了http请求就会发生错误,并且Linux系统会向用户发出警报.下面,U大侠小编就给大家详解Linux屏蔽浏览器上http ...

  9. 浏览器发送http请求过程分析

    https://segmentfault.com/a/1190000010156898 请求过程整体流程: 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 ...

最新文章

  1. mysql多字段数据统计_超详细的mysql元数据sql统计--information_schema
  2. Echarts读取本地json文件渲染轨迹,亲测ok
  3. 为什么我不在微信公众号上写文章
  4. SQL Server 2005 For XML[学习]
  5. Python kmean-opencv
  6. Mac上配置 Sublime Text 使其使用 Python3
  7. pytorch微调bert_香侬读 | RoBERT: 没错,我就是能更强——更大数据规模和仔细调参下的最优BERT
  8. zookeeper+kafka集群安装之中的一个
  9. hashmap删除指定key_HashTable和HashMap的区别详解
  10. 主机无法访问虚拟机的httpd服务
  11. insertAfter()
  12. java开发就业困难吗_就业困难期,他们面临着幸福的烦恼
  13. Magento 使用心得
  14. md5算出来不一样_西安美发培训学校:为什么我看到的色卡上的颜色和染出来的颜色会不一样呢?...
  15. 手机怎么看mkv格式视频 如何将mkv无损转换成mp4格式
  16. 2019山东省赛总结
  17. 我的世界 为何用java开发?
  18. 哈罗要在网约车市场取得突破,离开补贴行不通
  19. 软件项目管理之一:项目进度计划
  20. 完整版 html代码简洁说明,【完整版-HTML代码简介说明-适合新手】讲述.ppt

热门文章

  1. Python算法分析
  2. 【Camunda五】Camunda常用接口整合
  3. 两台私网IP地址主机如何通信?
  4. 3款免费压缩PDF的软件,不用注册打开就用,超方便
  5. 渗透测试完全初学者指南pdf_Google Analytics初学者完全指南
  6. 大数据机器学习的职业发展与薪资状况
  7. html中添加双下划线
  8. ESP32 Arduino使用内部霍尔传感器
  9. PAZU在线WEB打印
  10. 容器化OpenStack好处