web通信原理
在讲web工作原理的时候我们需要把其和主机通信原理进行区分,所以本文章将着重讲解web工作原理,为了与主机通信原理相区别,文末也会给出主机通信的原理
本文结构将按照如下进行讲解
- web相关术语
- web通信流程
- 主机通信原理
本文主要参考mdn的文章,深入理解可以看mdn的文档
refer
- mdn
https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works- 一次完整的HTTP请求过程
https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works
web相关术语
- C/S:指clients and servers,即客户端服务器模型,一个服务器接受来自多个客户端的请求requests并给出相应responses。
- TCP/IP:通常指TCP/IP协议簇,除了TCP协议、IP协议外还包含很多其他的协议,是一个协议簇。TCP协议指Transmission Control Protocol,工作在传输层,可靠有连接传输。IP协议是Internet Protocol,工作在网络层,不可靠无连接的协议。
- WWW:world wide web,即万维网,是分布式、联机式的信息存储空间,由URL对这里面的资源进行访问,通过HTTP进行传输,使用HTML从一个超链接链接到另一个网页并渲染该网页。
- URL:Uniform Resource Location,即统一资源定位符,一般形式为
<协议>://<主机>:<端口>/<路径>
,协议指的是用什么协议获取万维网文档,常见的有ftp,http等;<主机>是存放资源的主机在因特网中的域名或IP地址;<端口>和<路径>可以省略。如URLhttps://yingmuzhi.github.io/ymz/
- HTTP:HyperText Transfer Protocol,即超文本传输协议,通过该协议传输资源。应用层协议,定义了怎么向万维网服务器请求万维网文档以及如何把文档传送给浏览器,即浏览器和服务器如何进行交流。是建立在TCP连接上协议。
- HTML:HyperText Markup Language,超文本标记语言,通过该语言进行页面的跳转及渲染页面。
web通信流程
- 从browser(浏览器)中输入URL“https://www.google.com",与DNS服务器(域名服务器)建立UDP连接,进行域名解析,获得ip
- 将得到的IP通过ARP请求得到对应IP的MAC地址,通过MAC地址进行物理意义上的数据传输(先要判断源IP和目的IP是否同一网段,不是同一网段了走默认网关,再判断网关是否和目的IP同一网段,直至与目的IP同一网段。在寻找目的IP网段的途中经过路由的时候也会进行ARP请求)
- 浏览器与服务器发起3次TCP握手,保证消息的可靠传输
- 浏览器对服务器发起HTTP请求报文
- 服务器响应HTTP请求,将响应报文回传给浏览器
- 浏览器接收到HTML代码,解析HTML中的js,css,资源等
- 浏览器根据接受到的信息渲染页面
- 释放TCP连接,4次挥手