浏览器输入url后怎样请求服务的
卑微小吴励志写博客第12天。
当在浏览器中输入一个网址后的处理过程
1、浏览器根据域名查找域名对应的服务器IP地址。
根据域名查询IP地址的顺序如下:
- 浏览器DNS >>> 操作系统DNS缓存 >>> 本地(ISP)域名服务器缓存 >>> 根域名服务器。
在请求到根域名服务器之后,根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址。
本地域名服务器向顶级域名服务器dns.com进行查询,顶级域名服务器dns.com告诉本地域名服务器,下一步应查询的权限服务器dns.abc.com的IP地址。
本地域名服务器向权限域名服务器dns.abc.com进行查询,权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。
DNS 是什么?
域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域名”这个名词。“域名系统”明确地指明这种系统是应用在因特网中。
2、浏览器主机根据IP地址与服务器建立TCP连接。
建立TCP连接需要进行三次握手。
(1)浏览器主机 >>> 服务器:SYN=1,ACK=0,seq=x;
(2)服务器 >>> 浏览器主机:SYN=1,ACK=1,seq=y,ack=y+1;
(3)浏览器主机 >>> 服务器:ACK=1,seq=x+1,ack=y+1。
3、浏览器将访问请求封装为一个HTTP请求报文,通过TCP协议发送给服务器。
HTTP请求报文的方法是get方式;如果浏览器存储了该域名下的Cookies,那么会把Cookies放入HTTP请求头里发给服务器
4、服务器收到请求并响应,生成一个HTTP响应报文,通过TCP协议发送给浏览器主机。
HTTP响应报文的头部包含了状态码(Status-Code),三位数字,有5大类。HTTP响应报文内容则是网页的编码内容。
5、浏览器得到响应报文之后,对响应报文进行解析。
在浏览器没有完整接受全部HTML文档时,它就已经开始显示这个页面了。如果是个静态的页面,那到此就基本结束了。如果是是动态的,那么在浏览器显示HTML时,会获取嵌入在HTML中的对象,浏览器会发送获取请求来重新获得这些文件。
6、浏览器异步请求其他资源。
在分析HTML时,若发现网页引用了其他资源,例如:css、图片等,浏览器则发起HTTP请求,得到响应资源。
附:最常用状态码
一个人做事,在动手之前,当然要详慎考虑;但是计划或方针已定之后,就要认定目标前进,不可再有迟疑不决的态度,这就是坚毅的态度。——邹韬奋
浏览器输入url后怎样请求服务的相关推荐
- HTTP浏览器输入URL后发生了什么
原文:"天龙八步"细说浏览器输入URL后发生了什么 慕课大神 本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应 ...
- 浏览器输入url后发生了什么?
浏览器输入url后发生了什么? 转载于:https://www.cnblogs.com/hellogiser/p/what-happened-after-url-was-typed-in-browse ...
- 前端——在浏览器输入url后发生了都发生了什么
一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么? 主要包括以下几个基本步骤: 浏览器的地址栏输入URL并按下回车. 浏览器查找当前URL是否存在缓存,并比较缓存是否过期. DNS解 ...
- 浏览器输入url后经历的过程(详细)
页面加载流程: DNS查询 TCP连接 发送HTTP请求 服务器处理HTTP请求并返回HTTP报文 浏览器解析并render页面 HTTP连接断开 1. DNS查询 浏览器查看浏览器缓存-->系 ...
- 在浏览器输入URL后发生了什么?
摘录部分一:https://www.cnblogs.com/kongxy/p/4615226.html 从输入URL到浏览器显示页面发生了什么 当在浏览器地址栏输入网址,如:www.baidu.com ...
- 浏览器输入url后发生的变化
看了一圈网上的总结,然后结合自己的理解,下面的文字是详细的分析,参考知乎.感兴趣的可以仔细看一下,有时间还是要好好研究一下网络传输方面的内容. 本质上面是域名的解析 Domain Name Syste ...
- 【网络】浏览器输入URL到展示页面全过程(含互联网协议及HTTPS简介)
这里写自定义目录标题 前言 1.URL介绍 2.DNS查找 3.互联网协议 3.1 实体层 3.2 链路层 3.2.1 以太网协议 3.2.2 Mac地址 3.2.3 广播 3.3 网络层 3.3.1 ...
- 输入URL后浏览器的渲染过程
铅笔头课堂,有态度的前端培训 输入URL后浏览器的渲染过程 背景 作为前端开发,浏览器是与我们日常相伴的工具,以chrome为例,我们可以利用它调试页面的element节点.network网络.con ...
- 浏览器的工作原理:输入URL后,Web页面是如何呈现的?
重学JavaScript01 ----- 浏览器工作原理 文章目录 重学JavaScript01 ----- 浏览器工作原理 前言 一. 网络模型 应用层: 传输层: TCP协议的运行流程: 网络层: ...
最新文章
- 【swjtu】数据结构实验8_平衡二叉排序树
- Eclipse集成Tomcat:6个常见的”how to”问题
- 【Java 网络编程】NIO Buffer 简介 ( 概念 | 数据传输 | 标记 | 位置 | 限制 | 容量 | 标记 | 重置 | 清除 | 翻转 | 重绕 | 链式操作 )
- 使用Silverlight for Embedded开发绚丽的界面(2)
- 【转】程序员该做的事 - 每天、每周、每月
- JAVA Swing——设置JButton按钮样式
- 计算机图形学基础期末考试试题,计算机图形学基础_试卷(B)答案
- openstack内存占用清理
- python 命名管道_Linux 下 Python 读取命名管道的疑惑
- Linux_OpenSSH远程连接
- 运用Fluxion高效破解WiFi密码
- 用WPS2000制作勾股定理教学课件(转)
- seo和网站服务器有什么区别,网站为什么要做seo,seo与sem有什么区别
- Connect Four四子棋c++程序 - 用户交互(1)
- Cython基础使用
- 无人机大面积航测面临的难点及解决方法
- raid, scsi_host pics
- C#实现繁体简体转换方法总结|ASP.NET.分享
- 神器,阿里巴巴Java代码检查插件
- 基于权证交易、隐私保护模型的社交概念产品设计
热门文章
- 毕业季好难抉择丨考研还是工作我该选哪一个?!
- 毫秒级从百亿大表任意维度筛选数据,是怎么做到的.
- Anaconda安装报错(Failed to create Anaconda menus)
- Spring自定义参数解析器
- 那些年你追过的女神:开发人员应该懂多少运维
- mysql杀掉sql语句,Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)
- java 判断经纬度_Java中根据经纬度来判断距离
- React--》UI组件库ant-design的介绍与使用
- ios 关于MBProgressHUD简单实用
- 万字长文!终于讲透了Python中的多线程和多进程!