(1)请求响应流程

在日常的生活中,我们每天都要用到浏览器,不知道你是否好奇,当我们输入一个网站的网址时,到底发生了什么事情?让我们通过一个例子来探讨一下,我们假设访问的URL地址为

http://www.baiduu.com/s/1754896,当我们输入网址时浏览器内部会进行下面的操作。

  • DNS服务器会首先进行域名的解析,就像www.baiduu.com这个域名,我们的浏览器肯定不能只靠域名就找到百度的服务器的位置并建立连接,所以DNS服务器会首先进行域名的解析,找到对应域名映射的ip地址

DNS域名解析流程

首先浏览器会根据域名找到对应的ip地址DNS查找过程如下

  • 首先浏览器会先查找自己的DNS缓存(缓存时间很短,大概只有一分钟的时间,而且只能容纳大概1000条缓存),看自身的缓存中是否有域名对应的条目,而且没有过期的,如果有且没有过期则解析到此结束
  • 系统缓存:如果浏览器自身的缓存里面没有找到对应的条目,那么浏览器会搜索操作系统自身的DNS缓存,如果找到且没有过期则停止搜索解析到此结束
  • 路由器缓存:如果系统缓存也没有找到,则会向路由器发送查询请求。
  • ISP(互联网服务提供商)DNS缓存:如果在路由缓存也没找到,最后要查的就是ISP缓存的DNS服务器

然后让我们来回到HTTP的请求流程

  • 进行完DNS解析之后,我们也就知道了域名对应的ip地址,然后HTTP客户端进程在80端口(80为HTTP的默认端口)发起一个请求到www.baiduu.com的TCP连接此时通过三次握手建立连接,在客户端和服务器会有一个套接字相互连接
  • HTTP客户端通过它的套接字向服务器发送一个HTTP请求报文。该报文包含了资源路径/s/1754896
  • HTTP服务器通过它的套接字接受该报文,进行请求的解析工作,并从其存储器(RAM或磁盘)中检索出对象http://www.baiduu.com/s/1754896,然后把检索出来的对象进行封装,封装到HTTP响应报文中,并通过套接字向客户进行发送
  • HTTP服务器随即通知TCP断开TCP连接,实际上是需要等到客户端接受完响应报文后才会断开TCP连接
  • HTTP接受完响应报文之后,TCP连接会关闭。HTTP客户端从响应中提取出得报文是一个HTML响应文件,并检查该HTML文件,然后循环检查报文中其他的内部对象
  • 检查完成之后,HTTP客户端会把对应的资源通过显示器呈现给用户

HTTP的请求相应过程相关推荐

  1. rtsp连接断开_live555学习之RTSP连接建立以及请求消息处理过程

    live555 学习之 RTSP 连接建立以及请求消息处理过程 1 , RTSP 连接的建立过程 RTSPServer 类用于构建一个 RTSP 服务器,该类同时在 其内部定义了一个 RTSPClie ...

  2. tomcat 执行一个web请求的过程

    2019独角兽企业重金招聘Python工程师标准>>> Tomcat Server处理一个http请求的过程 假设来自客户的请求为: http://localhost:8080/ws ...

  3. Tomcat系列(6)——Tomcat处理一个HTTP请求的过程

    Tomcat的架构图   图三:Tomcat Server处理一个HTTP请求的过程 处理HTTP请求过程 假设来自客户的请求为:http://localhost:8080/test/index.js ...

  4. rtsp连接断开_live555_RTSP连接建立以及请求消息处理过程

    1,RTSP连接的建立过程RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话.首先创建RTSP服务器(具体实现类是 ...

  5. #tomcat#内部结构和处理一个请求的过程(一)

    Tomcat Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat的 ...

  6. 性能优化: http 请求的过程及潜在的性能优化点

    此文章主要讲解: 1. 什么是 Web 前端 2. BS架构 与 CS架构 3. 浏览器的一个请求从发送到返回都经历了什么 4. 浏览器的一个请求从发送到返回的这个过程, 我们都有那些点可以进行优化 ...

  7. HTTP请求的过程与TCP连接的过程

    HTTP请求的过程与TCP连接的过程 http请求的详细过程 HTTP是一个应用层的协议,在这个层的协议,是一种网络交互需要遵守的一种协议规范. 1.连接:当输入一个请求时,首先建立一个socket连 ...

  8. 浏览器一个HTTP请求的过程

    浏览器一个请求的过程 当我们在浏览器地址栏输入 www.xx.com ,然后回车, 这个请求背后经历了什么?以下是个人理解,如有偏差,请纠正! 首先重新温习下网络模型: 七层结构(至顶向下):应用层. ...

  9. vue中使用axios请求数据过程

    使用axios请求数据过程 1. 导入axios包 import axios from 'axios' 2. 在钩子函数中调用函数 mounted() {this.getinitialdata() / ...

  10. 完整的一次 HTTP 请求响应过程(二)

    上篇文章 我们完整的描述了计算机五层模型中的『应用层』和『运输层』,阐述了较为复杂的 TCP 协议的相关原理,相信大家一定也有所收获,那么本篇将继续五层模型的学习. 网络层 『网络层』其实解决的就是一 ...

最新文章

  1. Jsp实现BBS论坛交流系统
  2. mac设置计算机用户名,如何更改macbook用户名_高手教你更改macbook用户名的方法-系统城...
  3. android 自动 键盘,关于Android中的软键盘
  4. js检测弹出窗口拦截程序
  5. Android中FTP服务器、客户端搭建以及SwiFTP、ftp4j介绍
  6. 请教一些关于EF+oracle的问题
  7. Java删除服务器上的文件
  8. [转]2015年数学建模C题–基于无线通信基站的室内三维定位问题
  9. 蓝桥杯 7-2求arccos值 C++算法提高 HERODING的蓝桥杯之路
  10. html英文读法,classin读音发音 classln英文怎么读?
  11. 【BIEE】15_时间维度建立
  12. JAVA实现资源文件映射
  13. 地理遥感专业属于计算机行业吗,遥感科学与技术专业怎么样?
  14. 基于51单片机多功能智能心率检测仪设计(毕设课设)
  15. pe备份linux系统教程,如何使用老毛桃winpe的Bootice工具备份SYSLINUX引导程序?
  16. 《微观经济学》 第三章
  17. CardView 设置 selector
  18. 华三交换机配置多个镜像口_【转】交换机端口镜像,如何配置多个观察口
  19. hgame2023 WebMisc
  20. Android-音视频学习系列-(九)Android-端实现-rtmp-推流,零基础如何成为高级Android开发

热门文章

  1. android添加悬浮窗,在Android中使用WindowManager实现悬浮窗口
  2. Unity 使用陀螺仪判断手机方向
  3. SpringCloud:网关getway 路由转发
  4. 站长还应该发布外链吗?
  5. CC3200 wifi应用基础——中文教程
  6. vue怎么点击获取当前元素
  7. java学无止境-STFWnbsp;ornbsp;RTFM
  8. 使用Bootstrap制作网页主界面、增加界面
  9. 企业如何正确选择gpu服务器,GPU服务器参数——GPU服务器应该如何选择
  10. Qt绘制柱状图BarChart、饼状图PieChart、堆叠柱状图StackedChart、散点图ScatterChart