1、概念
TCP/IP是网络通讯协议族,即网络通讯协议总称。TCP、UDP、IP、FTP、SMTP、HTTP等都属于TCP/IP族内的协议。
2、TCP/IP四层体系结构模型
TCP/IP概念层模型 | 主要协议 | 功能 |
应用层 | FTP、SMTP、HTTP | 接收传输层的数据、按照应用要求将数据传输至传输层 |
传输层 | TCP、UDP | 提供两台主机端对端的通信 |
网络层 | ICMP、IP、IGMP | 为数据包选择路由 |
数据链路层 | ARP、RARP | 链路管理错误检测、传输地址等信息进行有效处理 |
3、OSI(国际标准化组织)模型
应用层、表示层、会话层(这3层合为应用层)、传输层、网络层、数据链路层、物理层(这2层合为数据链路层)
1、概念
传输控制协议(TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。
2、TCP三次握手的建立连接过程
1)、客户端发送SYN报文给服务器端,进入SYN_SEND状态。
2)、服务器端接收到SYN报文后,回应一个SYN+ACK报文给客户端,进入SYN_RECEIVED状态。
2)、客户端接收到SYN报文后,回应一个ACK报文给服务器端,进入ESTABLISHED状态
3、TCP四次握手断开连接(这是由TCP的半关闭造成的)
1)、客户端标示数据发送完毕,则向服务端发送FIN分节,请求释放连接。
2)、服务器端接到这个FIN分节之后,告诉TCP确认,然后发送ACK,进入CLOSE_WAIT状态(此时表明客户端到服务器端的连接已经释放,服务器端不再接收客户端发送的数据,但服务器端仍可向客户端发送)。
3)、服务器端此时如果还有没发完的数据会继续发送,完毕后会向客户端发送FIN分节,请求释放连接,然后服务器端进入LAST_ACK状态。
4)、客户端收到释放请求后,向服务器端发送确认应答,进入TIME_WAIT状态。2m内若没有服务器端的重连请求,进入CLOSE状态,服务器端收到确认之后也进入CLOSE状态。
4、TCP的特点
1)、面向连接。
2)、基于流的方式通信。
3)、“三次握手”保证可靠传输。
4)、网络不佳时,减少数据注入速率和量,缓解拥塞。
5)、每条TCP连接维护的是两个端点通信,不支持多端点。
1、概念
用户数据报协议(UDP)提供一种无需建立连接就可以发送封装的IP数据包的方法。
2、特点
1)、无连接协议。
2)、面向报文。
3)、不可靠性。
4)、头部信息只有8字节,减小信息包额外开销。
5)、一对一、一对多、多对多、多对一。
1、概念
超文本传输协议(HTTP)是一种运行与TCP之上的简单的请求-响应协议。默认端口80。
2、特点
1)、基于请求/响应模式,即客户端/服务器端模式。
2)、简单快速:客户端只需发送请求方式(GET、POST、PUT、HEAD等)和路径。
3)、灵活:允许传输任意类型的数据对象,由Content-Type加以标记。
4)、无连接:每次只响应一个请求,处理完毕即断开连接。
5)、无状态:服务器端不保留客户端的任何信息,每个请求之间无关联。
3、GET和POST区别
1)、数据传输方式不同:GET通过URL传输且有长度限制;POST方法体传输。
2)、安全性:GET不安全;POST相对安全。
3)、数据类型不同:GET只允许ASCII;POST无限。
4、HTTP请求报文结构
1)、请求行:包含请求方法、URL、HTTP版本信息。
2)、请求头部:关键字/值对组成,key/value通过“:”分隔,Cookie、User-Agent等。
3)、空行:通过一个空行告诉服务器端请求头到此结束。
4)、请求体:即GET/POST等请求携带的内容体。
5、HTTP响应报文结构
1)、响应行:协议版本、状态码、描述组成。
2)、响应头:用于描述服务器的一些基本信息。
3)、空行:一个空行隔开响应头。
4)、响应体:服务器端响应回来的数据体。
6、HTTP版本
1)、HTTP/0.9 :只GET,仅HTML。
2)、HTTP/1.0 :请求必须包含头信息;增加了POST和HEAD;支持多数据格式。
3)、HTTP/1.1 :持久连接,即TCP默认不关闭,一个TCP连接允许多个HTTP请求。
4)、HTTP/2.0 :多工,不仅客户能同时发多个请求,服务器端也能同时处理多个请求,解决了对头堵塞问题。
7、其它
1)、keep-alive(持久连接):减少CPU和内存使用;允许请求和响应的管线化;降低拥塞控制;减少请求迟疑。
2)、HTTP2较HTTP1.x :二进制分帧;服务器推送;头部压缩;多路复用。
1、概念
HTTPS :以安全为目标的HTTP通道,即安全版HTTP,SSL/TLS+HTTP通过传输加密和身份认证保证传输安全。默认端口443。
2、HTTPS请求过程
1、概念
套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,它是网络通信过程中的断点的抽象表示。
2、Socket通信过程
3、Socket心跳机制:定时发送约定是数据报文维持连接。
1、Cookie和Session
Cookie:保存在客户端记录服务器端信息的小段文本信息。
Session:服务器端保存会话记录信息的技术。
Cookie和Session区别
1)、存储位置不同:Cookie存储于客户端;Session存储于服务器端。
2)、生命周期不同:Session到设定时间之后结束,不设定时间也会随着客户端进程结束而结束;Cookie默认随客户端进程结束而结束,设定之后不受客户端进程的影响。
3)、安全性Cookie存储于客户端,安全性较弱;Session存储于服务器端,安全性较高,但过多则影响性能。
2、Uri和Url
Uri :统一资源标识符,用于标识某一互联网资源名称的字符串。
Url :统一资源定位符,是Uri的子集。