网络协议
1.网络模型
现在的网络都采用分层的方式进行工作:
- 高层:包括应用层、表示层、会话层、传输层,负责主机之间的数据传输
- 底层:网络层、数据链路层、物理层,负责网络数据传输
OSI网络模型:
从高层到底层分别是:
- 应用层:提供程序之间的通信,常见协议有HTTP、FTP
- 表示层:处理数据格式、数据加密等,常见协议有NBSSL、LPP
- 会话层:建立、维护、管理回话,常见协议有RPC、LDAP
- 传输层:建立计算机之间端到端的联系,常见的协议有TCP、UDP
- 网络层:寻址和路由选择,IP、ICMP
- 数据链路层:提供介质访问和链路管理等功能,常见协议有PPP
- 物理层:进行比特流传输
TCP/IP网络模型:
从高层到底层分别是:
- 应用层:提供应用层次接口,常见协议有HTTP、FTP
- 传输层:计算机端到端连接,常见协议有TCP、UDP
- 互联网层:寻址和路由,常见协议有IP、ICMP
- 网络接口层:二进制数据流传输和介质访问,常见协议有PPP
2种模型的对应关系
2.HTTP协议
HTTP(Hyper Text Transfer Protocol)超文本传输协议
HTTP报文:
HTTP报文包括从客户端到服务端的请求,以及从服务端到客户端的响应2部分:
- 客户端请求的报文格式为:请求行 -- 通用信息头 -- 请求头 -- 实体头 -- 报文主体
- 服务端响应的报文格式为:状态行 -- 通用信息头 -- 响应头 -- 实体头 -- 报文主体
2种请求方式(POST、Get)
区别:
- Get用于从服务端查询信息,不能修改服务端的数据。Post可以改变服务器上的数据。
- Get请求的参数以键值对形式跟在url之后,url和参数用?隔开,参数之间用&隔开。Post把提交的数据放置在http包的包体中。
服务器响应状态码:
- 1xx:请求已被接受 ,需要继续处理
- 2xx:请求处理成功
- 3xx:重定向,客户端需要继续操作
- 4xx:客户端错误
- 5xx:服务端错误