常见问题:计算机网络/完整HTTP访问
时间:2019-08-31
本文章向大家介绍常见问题:计算机网络/完整HTTP访问,主要包括常见问题:计算机网络/完整HTTP访问使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
域名解析
- 以浏览器进行HTTP访问为例,首先搜索自身DNS缓存(一般缓存1000条左右,仅缓存1分钟),若有且未过期,结束。
- 若未找到,则搜索操作系统的DNS缓存。
- 若未找到,尝试读取hosts文件。
- 若未找到,发起向本地首选DNS服务商。DNS服务商优先找自身缓存,未找到,则找根域名的ip(如com),根域名再逐级查找(如cnblogs.com),直到找到。
与服务器建立连接
整体流程简述
发送方:应用层(HTTP)-传输层(TCP)-网络层(IP)-链路层
- HTTP协议: 生成对目标服务器目标资源的HTTP请求报文。
- TCP协议: 将HTTP请求报文分割成报文段,打序号和端口号,将每个报文段可靠传输。
- IP协议: 给TCP报文增加作为通信目的地的MAC地址,转发给链路层。
- 链路层: 增加以太网首部。
接收方:链路层-网络层(IP)-传输层(TCP)-应用层(HTTP服务器)
- 链路层: 消去以太网首部。
- IP协议: 接收数据。
- TCP协议: 接收收到的报文,按序号以原来的顺序重组报文段。
- HTTP协议: 根据收到的请求报文,访问目标资源。
接收方同样利用TCP/IP通信协议向用户回传。
链路层
处理连接网络的硬件部分。
网络层-IP协议
IP协议作用是把数据包传给对方,因此需要给数据包添加两个条件:IP地址和MAC地址。IP地址指明节点被分配到的地址,可变。MAC地址指网卡所属固定地址,通常不变。当通信双方不在同一LAN时,则无法获取目标的MAC地址。此时,通常是经过多台计算机和网络设备中转才能连接到对方。中转时,利用下一站中转设备的MAC地址来搜索下一个中转目标。此时会使用ARP协议,ARP协议可以通过通信方的IP地址反查出对应的MAC地址。
ARP采用一问一答的形式,较为简单。发送方向ARP服务发出请求获取IP对应的MAC地址,并将其缓存在ARP缓存中。发送方(PC1)需要向ARP服务提供自己的IP和MAC地址,以及目标的IP地址。ARP服务会用这些信息在LAN内进行广播,其目标主机(PC2)收到该广播后,会先将PC1的信息放在自己的ARP缓存,之后,以单播形式向PC1回应ARP返回。
传输层-TCP协议
TCP提供字节流服务,将大块数据分割成以报文段segment为单位的数据包进行管理,其目的是更容易传送大数据。为确保送达,TCP采用三次握手方式,首先发送带SYN bit的包,对方接收后回传带SYN bit和ACK bit的包表示确认信息,发送方再回传带ACK bit的可带数据的包开始发送数据。
原文地址:https://www.cnblogs.com/cielosun/p/11428983.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法