上网的原理
- 我们在上网的时候需要在浏览器输入相应的网址,也就是url。然后电脑会发送url到DNS服务器,服务器 给我们相应的 ip。浏览器根据ip找到web服务器找到相应资源显示到浏览器。
HTTP
- 超文本传输协议是一种通信协议,它允许将超文本标记语言文档 从Web服务器传送到客户端的浏览器。
- 属于应用层的面向对象的协议,由于其简捷,快速的方式,适用于分布式超媒体信息系统。它于1990年体察,经过几年的使用与发展,得到不断的完善和扩展
Web与HTTP
- WEB是一种基于超文本和HTTP的,全球性的,动态交互的,跨平台的分布式图形信息系统
- 建立在internet上的一种网络服务。为浏览器在Internet上查找和浏览信息提供了图形化的,易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构
HTTP的诞生
- 1990年10月万维网之父Berners-Lee最早提出了HTTP协议
- 1991年HTTP0.9诞生
- 1996年5月HTTP1.0发布
- 1997年1月HTTP1.1发布
- 2015年5月HTTP2.0提出
- HTTP3.0 QUIC协议
TCP/IP与HTTP
-
HTTP协议是构建在TCP/IP协议之上的,是TCP/IP的一个子集
-
TCP/IP协议族
-
TCP/IP协议是一系列与互联网相关联的协议集合起来的总称
-
分层管理是TCP/IP协议的重要特征
-
TCP/IP协议族分层
-
TCP/IP协议族是由一个四层协议组成的系统,这四层分别为:应用层,传输层,网络层和数据链路层
应用层
应用层一般是我们编写的应用程序,决定了向用户提供的应用服务。应用层可以通过系统调用与传输层进行通信。如:FTP,DNS,HTTP
传输层
传输层通过系统调用 向应用层提供处于网络连接中的俩台计算机之间的数据传输功能
在传输层有俩个性质不同的协议:TCP(效率低)和UDP(效率高可靠性低)
网络层
网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了通过怎样的路径也就是传输路线到达对方计算机 ,并把数据包传输给对方
链路层
链路层用来处理链接网络的硬件部分,包括控制系统,硬件设备驱动,NIC(Network Interface Card,网络适配器)以及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之上
-
数据包的封装过程
-
发送端发送数据时,数据会从上层传输到下层,且每经过一层都会被打上该层的头部信息。而接收端接收数据时,数据会从下层传输到上层,传输前会把下层的头部信息删除
-
传输层——TCP三次握手
-
使用TCP协议进行通信的双方必须先建立连接,然后才能开始传送数据 。为了确保连接双方可靠性,在双方建立连接时。TCP协议采用了三次握手策略。
第一次握手
客户端发送带有SYN标志的连接请求报文段,然后进入SYN_SEND状态,等待服务端的确认。
第二次握手
服务端接收到客户端的SYN报文段后,需要发送ACK信息对这个SYN报文段进行确认。同时,还有发送自己的SYN请求信息。服务端会将上述的信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务器会进入SYN_RECV状态。
第三次握手
客户端接收到服务端的SYN+ACK报文段后,会想到服务端发送ACK确定报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手。
为什么要进行三次握手?
第一次握手,客户端发送一个包,服务端能确定客户端的发送能力是正常的,自己 的接受能力也是正常。
第二次握手,服务端发送一个包,客户端能确认服务端接受能力和发送能力也是正常,自己的发送能力和接受能力也是正常的。
第三次握手,服务端能得出双方的接受能力和发送能力都是正常。
所以确定双方能力至少需要三次。
DNS服务
- DNS服务与HTTP协议存在着密不可分的关系
- 我们在访问一个网站时,使用的是主机名或者域名来进行访问。相对于IP地址(一组纯数字),域名更容易让人记住。但是TCP/IP协议使用的是IP地址进行访问的,所以必须有个机制或服务把域名转换成IP地址 。DNS服务就是用来解决这个问题的,它提供域名到IP地址之间的解析服务。
- 第一步访问本地DNS如果没有查询上一层DNS。
1.主机先像DNS服务发送域名,然后DNS提供给主机IP地址,主机通过IP地址访问相应服务器
2.先进行TCP/IP三次握手进行初步连接。
3.连接之后,主机发送HTTP请求报文,服务器通过HTTP协议进行回应报文。
4.关闭TCP连接。