TCP/IP协议---》4层
应用层 》编写的程序位于应用层,应用程序是和TCP/UDP打交道;http、ftp
传输层 》TCP/UDP
网络层 》IP层
数据链路层 》以太网、ATM等硬件的接口
客户端 服务器(被动打开)
1.——————》ACK=0,SYN=1,seq=x
2.《——————SYN=1,ACK=1,ack=x+1,seq=y
3——————》ACK=1,seq=x+1,ack=y+1
ACK表示响应;SYN表示建立连接;ack确认码;seq顺序码
CS架构
Client----客户端
创建socket()
connect()连接指定的计算机端口 (ip、端口)
send();往socket写入信息
关闭socket
Server---服务器
serversocket()
bind();绑定socket和端口号
listen()监听端口
accept()接收客户端传递过来的内容
读取字符
关闭
ftp:文件传输协议 端口 21
HTTP协议
-----超文本传输协议,是计算机网络通信中的一种规则,端口号 80;
http是无状态的协议,客户机和服务器之间不需要建立持久的连接,通信完就断开。
遵循请求响应模型;所以的通信都构造在请求响应模型中,客户端和服务器交换数据
版本号1.1 默认连接一直保持;访问一个URL,发送多次请求,只依靠一个TCP连接就可以了。
http的工作流程:
1、客户端和服务器建立连接;new socket()
2、客户端发送请求;
请求行--请求的方法;http版本
请求头--http传递的元信息。告诉服务器一些客户端的信息
空行--发送回车符或者空格,区分请求头和消息体
消息体--存放用户传输的内容(post请求)
3、服务器响应请求;
状态行--http版本和状态码
响应头--内容描述(长度、时间戳、服务器信息)
空行--发送回车符或者空格,区分响应头和消息体
消息体--响应的内容
4、服务器关闭连接,客户端解析服务器发送回来的内容。