说一下HTTP服务的全过程及扩展问题整理
2023-06-13 09:17:22 时间
问题1:当我们在浏览器中输入网址,按下回车,具体发生了什么?
- 对网址进行DNS解析,得到对应的IP地址。
- 根据这个IP地址,找到对应的服务器,并发起TCP的三次握手。
- 建立TCP连接后会发起HTTP请求。
- 服务器响应HTTP请求。
- 浏览器解析得到html代码。
- 请求html代码中的资源(如js、css、图片等)。
- 浏览器对页面进行渲染呈现给用户。
- 服务器关闭关闭TCP连接。
问题2:DNS是什么?
- DNS一般指域名系统。域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。
问题3:DNS是如何找到域名的?
- 浏览器会检查自身的DNS缓存中有没有对应的ip地址(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存)
- 如果还没有找到,则去 hosts文件里面去找
- 如果host文件没有配置,那么就会去本地区DNS域名服务器进行查找。比如:小区的网络提供商。
- 本地区DNS域名服务器也不能解析,会去根域名服务器请求解析(.com.cn.org等根域名服务器)。
- 根域名服务器查询并返回域名对应的服务器的地址。根域名服务器通常是你注册的域名服务器。
- Name Server域名服务器会查询存储的域名和ip的映射关系表。
- 把解析的结果缓存在本地系统缓存中,域名解析过程结束。
问题4:为什么HTTP协议要基于TCP来实现?
- TCP(传输层)是一个端到端的可靠的面相连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,会重传)
问题5:说一下三次握手?
- 拿到域名对应的IP地址后,浏览器会根据IP找到服务器,根据端口号找到所在服务中的web服务,发送一个TCP报文。(我准备好了,你准备好了吗)
- 这个请求到达服务端后,服务端会给予前端确认收到的响应信息(报文)。(我也准备好了,你确认下)
- 浏览器接收到来自服务器确认收到报文后,明确了从客户端到服务器的数据传输是正常的,并返回一段TCP报文。(确认成功)
问题6:聊一聊四次挥手?
(断开请求链接 2 次, 断开响应链接 2 次)
- 客户端告诉服务端:请求数据发送完毕,可以断开
- 服务端告诉客户端:请求数据接受完毕,可以断开
- 服务端告诉客户端:响应数据发送完毕,可以断开
- 客户端告诉服务端:响应数据接受完毕,可以断开
相关文章
- Java扩展工具使用说明补充
- 在Perl中扩展C库(1):XS语言(更新中)
- Windows7 的 PAE (物理扩展内存)开启与关闭方法
- Gallia:一款针对汽车安全的可扩展渗透测试框架
- [技能扩展] 安装微软商店版的Microsoft Office 可按需安装需要的独立组件
- 扩展如何在PHP中开启Redis扩展(php开启redis)
- Oracle 详解添加实例步骤,快速扩展数据库性能(oracle添加实例)
- Linux 轻松创建扩展分区!(linux创建扩展分区)
- 构建LAMP环境 以增加PHP的MSSQL扩展(增加php扩展mssql)
- 以分布式方式使用Redis弹性扩展服务(分布式部署redis)
- 构建基于RedisSSM的可扩展体系结构(redis 跟ssm)
- JS的数组的扩展实例代码
- win2003关闭不需要的数据库服务禁止不用的web服务扩展的方法图文
- SQL2005CLR函数扩展-解析天气服务的实现