网路与http协议一些知识点整理

1、网络的五层结构

 常见的ISP,有分层,自己连到区域,区域再连到国际。ISP(Internet Service Provider),互联网服务提供商。

网络边缘:外界设备连接到服务器,端系统如何接入因特网

网络中心:网络核心就是由互联网端系统的分组交换机和链路构成的网状网络。

主机:与网络相连的设备。

网络分层:

2、协议

  

     

3、Http协议和tcp的协议的关系

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。

httP协议一般基于tcp协议

HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。

  • TCP(传输控制协议)和IP(网际协议 )是最先定义的两个核心协议,所以才统称为 TCP/IP协议族

传输层位于应用层的下层,提供位于网络连接中的两台计算机之间的数据传输,传输层中有两种性质不同的协议

敲重点:每一个应用层协议一般都会使用到两个传输层协议之一

  • TCP:面向连接的 TransmissonControlProtocol传输控制协议(不可靠,适用于实时应用如ip电话,视频会议)

  • UDP : 无连接的包传输 UserDataProtocol用户数据报协议(可靠,适用于要求可靠传输的应用,例如文件传输)

四元组

端口号:本质上是标识符,有助于 TCP区分机器上运行的应用。计算机上的每个端口号都由该计算机上的应用拥有。

端口号是2字节整数,端口0不可用。因此,我们可以在一台机器上拥有多达65536个端口。

TCP通过端口号来定义“连接”。

TCP连接由源和目标IP地址(来自网络层)以及源和目标端口号标识。这也称为四元组:

// 源IP地址、目的IP地址、源端口、目的端口
(src ip,dst ip,src port,dst port)

四、三次握手四次挥手

TCP网络中,为了保障每个连接提供有保证和有序的字节传递,使用了 SequenceNumber (序列号)和 AcknowledgmentNumber (确认号),即 Seq和 Ack

SEQ,序列号,表示每次传输中字节的偏移量 ACK,确认号,指出下一个期望接收的 SEQ(接受完毕)

举个例子:

  1. 序列号为 #2000且长度为 100的数据包,在此连接上包含第 2000-2099个字节。

  2. 当接收器接收到包括第 2099字节在内的所有字节时,它发送一个确认 #2100

  3. 表示它已在第 2100字节之前接收到该字节。

SYN,同步序列号

三次握手:主机A向主机B发送SYN同步序列号(标志位的数据段),请求建立连接。--------->主机B收到主机A的请求后,用确认号ACK和同步序列号SYN标志位的数据段响应主机A。-------->主机A收到数据段后,主机A发送确认号ACK给主机B,确认已收到主机B的数据段,开始传输数据。

4次挥手:主机A数据传输完成后,将控制为FIN置为1,提出停止TCP连接的请求,------->主机B收到FIN后作出响应,将ACK置1,确认这一方向上的连接将关闭。-------->主机B再提出停止TCP连接的请求,将FIN置1。-------->主机A收到主机B的请求,将ACK置1,双方向的TCP连接均关闭。

五、浏览器页面渲染机制

1、浏览器内核指支持浏览器运行的最核心程序。常见的浏览器内核分为:Trident(IE)、Gecko(火狐)、Webkit(Safari)、Blink(Chorme 、Opera)

2、页面加载过程

  • 浏览器根据 DNS 服务器得到域名的 IP 地址

  • 向这个 IP 的机器发送 HTTP 请求

  • 服务器收到、处理并返回 HTTP 请求

  • 浏览器得到返回内容

3、浏览器渲染过程

浏览器渲染过程大体分为如下三部分:

(1)浏览器解析

  • 一是HTML/SVG/XHTML,HTML字符串描述了一个页面的结构,浏览器会把HTML结构字符串解析转换DOM树形结构。

  • 二是CSS,解析CSS会产生CSS规则树,它和DOM结构比较像。

  • 三是Javascript脚本,等到Javascript 脚本文件加载后, 通过 DOM API 和 CSSOM API 来操作 DOM Tree 和 CSS Rule Tree。

(2)解析完成后,浏览器引擎会通过DOM Tree 和 CSS Rule Tree 来构造 Rendering Tree。

(3)调用操作系统Native GUI的API绘制。

浏览器如果渲染过程中遇到JS文件怎么处理

渲染过程中,如果遇到<script>就停止渲染,执行 JS 代码。因为浏览器有GUI渲染线程与JS引擎线程,为了防止渲染出现不可预期的结果,这两个线程是互斥的关系。JavaScript的加载、解析与执行会阻塞DOM的构建,也就是说,在构建DOM时,HTML解析器若遇到了JavaScript,那么它会暂停构建DOM,将控制权移交给JavaScript引擎,等JavaScript引擎运行完毕,浏览器再从中断的地方恢复DOM构建。

如果想首屏渲染的越快,就越不应该在首屏就加载 JS 文件,这也是都建议将 script 标签放在 body 标签底部的原因。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值