http请求的全部过程
1,浏览器根据域名解析IP地址:DNS域名解析
2,浏览器与web服务器建立TCP连接:TCP连接和UDP连接
3,浏览器给web服务器发送一个HTTP请求:HTTP请求类型
4,服务器端响应HTTP请求,浏览器得到HTML代码
5,浏览器解析HTML代码,请求HTML代码中的资源:什么资源
6,关闭TCP连接,浏览器对页面进行渲染,显示给用户。:关闭TCP连接
http请求过程:二,TCP连接和UDP连接
一起因:简单介绍一下网络通信原理:TCP/IP五层模型
应用层:规定应用程序的数据格式,例如Email数据格式要按照Email协议规定,WWW要按照网页的协议规定。
传输层:建立端口到端口的通信;格式化信息流,提供可靠传输(TCP/UDP)。例如端口是为了识别主机上的应用程序,发送消息的是QQ还是微信。
网络层:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址。例如网络层得到ip区分子网,得到以太网的mac找到主机。
链接层(数据链路层):定义电信号的分组方式,规定位数及含义。例如以太网协议(ethernet),mac地址,广播
物理层:主要是基于电器特性发送高低电压(电信号),只区分高低电压,无意义。利用光缆、电缆、双绞线、无线电波等把计算机连接起来。
注:越下面的层,越靠近硬件;越上面的层,越靠近用户
二经过:TCP协议和UDP协议都是位于传输层的协议,我们首先从传输层谈起。
传输层: 传输层是TCP/IP协议五层模型中的第四层。它提供了应用程序间的通信,它负责数据能够从发送端传输到接收端。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
①UDP协议:
UDP报文格式:
UDP特点:
1.无连接:只知道对端的IP和端口号就可以发送,不需要实现建立连接。
2.不可靠:没有确认机制, 没有重传机制。如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息。
3.面向数据报: 应用层交给UDP多长的报文, UDP原样发送既不会拆分,也不会合并。如果发送端调用一次sendto, 发送100个字节, 那么接收端也必须调用对应的一次recvfrom, 接收100个 字节,而不能循环调用10次recvfrom, 每次接收10个字节。所以UDP不能够灵活的控制读写数据的次数和数量。
4.简单快速(高效): 不会因为维护可靠性而花费时间及成本。
5.另外传输的数据有上限,64k
6.UDP的socket既能读又能写,即全双工。
7.没有真正意义上的发送缓冲区; 具有接受缓冲区:
②TCP协议:
TCP报文格式:
TCP特点:
1.有连接,通信前要先建立连接(三次握手机制)
2.可靠性,有序,无差错,不丢失,不重复
3.面向字节流,它能将信息分割成组,并在接收端将其重组
4.相对比较复杂,不仅需要维护其可靠性,同时要提高性能
5.既有发送缓冲区,又有接受缓冲区
6.提供拥塞控制和流量控制机制
连接管理机制:
三次握手(建立连接),四次挥手(断开连接)
三结果:
-
TCP协议的应用 :用于可靠传输的情况 比如:文件传输,重要状态更新的场景
-
UDP协议的应用 :用于高效传输和实时性要求较高的通信领域 比如:早期的QQ,视频传输,另外还可以用于广播
-
基于TCP的应用层协议:
-
HTTP
-
HTTPS
-
SSH
-
Telnet
-
FTP
-
SMTP
-