浏览器访问网址过程详解
前言
首先要了解几个参数的含义:
IP地址:是指互联网协议地址。
子网掩码:子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
网关地址:网关地址就是你的路由器的地址。
DNS地址:是一个域名服务器地址,它负责把用户的网站地址解析成IP地址。
大体流程如下图所示:
1.浏览器发送请求到DNS服务器,DNS服务器解析域名,将域名对应ip返回给浏览器
2.浏览器将返回ip和本地ip分别与子网掩码做与运算,封装一个数据包并判断是否在同一个子网下
3.如果在同一个子网下,局域网内转发,如果不是,通过交换机将数据包发送给网关
4.通过路由器联通别的子网,然后将数据包转发到别的子网或者路由器中。
5.别的路由器判断该数据包的接收者是否在该路由器下,如果不在该路由器下,接着转发给别的路由器。如果在,在子网内转发,直到接收者接收到数据包。
6.接收者服务器获取到数据包,将数据包层层解析,最终获取http请求报文。
7.接收者服务器调用内部服务,响应请求数据,再将响应数据响应给浏览器。
8.浏览器获取到数据并进行展示。
数据包结构封装流程:
1.应用层:浏览器会按照应用层的http协议,封装一个应用层数据包,里面放着http请求报文。
2.传输层:该层是tcp协议,这个协议会让你设置端口,发送方的端口随机选一个,接收方的端口一般是默认的80端口。这个时候,会把应用层数据包给封装到tcp数据包中,而且会加一个tcp头,这个tco数据包对应一个tcp头,这个头里就放了端口号信息。
3.网络层:走ip协议,这个时候会把tcp头和tcp数据包放到ip数据包里,然后创建一个ip头,ip头里有本机和目标机的ip地址。
4.数据链路层:这块走以太网协议,这里是把ip头和ip数据包封装到以太网数据包里,然后加一个以太网数据头,头里放着本机网卡mac地址和网关的mac地址。(这里注意:以太网数据包的限制是1500字节,如果ip数据包大于1500字节,此时会将ip数据包切割成多个,然后每个数据包最多1500字节,多个数据包分别转发,每个被切割的ip数据包包头会包含序号,方便后期组装)
浏览器访问网址过程详解相关推荐
- java对象的访问定位_JVM创建对象及访问定位过程详解
1.对象的创建 虚拟机接收到new指令时,检查这个指令能否在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载.解析和初始化.如果都没有,先执行类加载过程. 在类加载通过后,虚拟 ...
- HTTP访问一个网站的过程详解
访问一个网站的过程详解 例如访问:http://www.baidu.com HTTP请求的准备 浏览器会将www.baidu.com这个域名发送给DNS服务器,让它解析成IP地址.由于HTTP是基于T ...
- 浏览器实现抓包过程详解
浏览器实现抓包过程详解 几乎所有浏览器都提供了抓取数据包的功能,因为浏览器为抓包提供了一个专门的操作界面,因此这种抓包方式也被称为"控制台抓包".本节以 Chrome 浏览器为例进 ...
- python属性使用教程_Python对象的属性访问过程详解
只想回答一个问题: 当编译器要读取obj.field时, 发生了什么? 看似简单的属性访问, 其过程还蛮曲折的. 总共有以下几个step: 1. 如果obj 本身(一个instance )有这个属性, ...
- 应用请求web服务器的过程详解
我们在做渗透测试时,需要知道互联网中是如何处理客户端与服务器端之间的请求的.本文转载一篇文章详解介绍了一次web请求过程的处理. 我们要了解一下Internet中一台计算机访问Web服务器的全部过程, ...
- 个人Internet网站创建过程详解
个人Internet网站创建过程详解 本文通过创建Internet示范网站--自由网络(Webfree)的实例,详细叙述了Windows NT安装.WWW服务.FTP服务的配置.邮件服务.新闻讨论组服 ...
- SQL注入攻击实现原理与攻击过程详解
SQL注入攻击实现原理与攻击过程详解 结构化查询语言(SQL)是一种用来和数据库交互的文本语言,SQL Injection就是利用某些数据库的外部接口把用户数据插入到实际的数据库操作语言当中,从而达到 ...
- Java web 开发的概念、环境配置、创建项目过程详解(Eclipse)
Java Web 开发 Java Web 开发概念 搭建过程 详解 在eclipse创建Dynamic Web Project 创建时选择Tomcat的版本 创建项目成功 eclipse环境下如何配置 ...
- php android 图片上传,android上传图片到PHP的过程详解
这篇文章主要介绍了android上传图片到PHP的过程详解,需要的朋友可以参考下 今天在做上传头像的时候,总是提交连接超时错误,报错信息如下:XXXXXXSokcetTimeOutXXXXXXXX 然 ...
最新文章
- 数据安全最佳实践案例库建设项目正式启动
- Remove Linked List Elements
- php mysql json 转义字符_PHP转义Json里的特殊字符的函数
- 选项卡 || 图片切换
- iOS键盘高度自适应(中英文输入)
- Android学习笔记(十一)——从意图返回结果
- 企业应用:应用层查询接口设计
- 2.页面截长图工具-FireShot
- nod32防火墙配置与系统防黑手册
- 无线打印服务器三星3200,求助三星3200打印机“USB打印机不可用”
- bou计算机术语,2012年计算机一级考试模拟试题及参考答案(27)
- pycharm定时运行python脚本_Python脚本定期执行_执行python脚本_如何执行python脚本
- 中国城市轨道交通与设备产业十四五建设规划与运营模式咨询报告2022-2028年
- 常用数字电路模块:计数器与分频电路(一)
- AMap(地图组成与名词解释)
- 行走在数据库上的行癫(四)
- 关于iOS tableview自定义区头
- -XX:+PrintGCTimeStamps 打印CG发生的时间戳
- Java面向对象原谅帽
- (转)Unity MRTK语音输入
热门文章
- 【Latex】用Acrobat剪切pdf文件中图
- VMware虚拟机vmx文件丢失
- md笔记上传到CSDN---Typora+SMMS+PicGo
- Entrust Datacard完成对泰雷兹旗下市场领先的通用硬件安全公司nCipher Security的收购
- c语言查表程序,C语言查表法问题
- 排序模型(learning to rank)发展史(偏推荐系统
- python3的基本数据类型_python3基本数据类型
- JavaSE-day01
- 软件测试——佣金问题测试用例练习
- native聊天界面 react_ReactNative 聊天 App 实战|RN 仿微信界面群聊|朋友圈