定义
网络协议指的是计算机网络中互相通信的对等实体之间交换信息所必须遵守的规则的集合
包含五个部分:通信环境,传输服务,词汇表,信息的编码格式,时序+规则+过程
三要素:语义(做什么),语法(怎么做),时序(做的顺序)
总的来说,网络协议是计算机交流的语言。
OSI模型
物理层(Physical):提供网络的物理连接,基于物理介质。服务包括:物理连接,物理数据单元顺序化,数据电路标识。
数据链路层(DataLink):进行数据封装和数据链接的建立。功能包括:数据链路连接的建立与释放,构成数据链路数据单元,数据链路连接的分裂,定界与同步,顺序和流量控制,差错的检测及恢复。
网络层(Network):解决网际通信问题。功能包括:建立和拆除网络连接,路径选择和中继,网络连接多路复用,分段和组块,服务选择,流量控制(如IP/ICMP/IGMP)。
传输层(Transport):提高网络服务质量,提供可靠的端到端的数据传输,提供一套网络数据传输标准(如TCP/UDP)。
会话层(Session):利用传输层来提供会话服务,比如登录到一个主机,建立用于传输数据的会话。功能包括会话连接到传输连接的映射,数据传送,会话连接的恢复和释放,会话管理,令牌管理,活动管理。
表示层(presentation):数据管理的表现方式。功能包括数据语法转换,语法表示,表示连接管理,数据加密,数据压缩。
应用层(Application):包含用户应用程序执行通信任务所需要的协议和功能(如HTTP/FTP/SMTP)。
HTTP
超文本传输协议(HyperText Transfer Protocol),基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)
三点注意事项
-HTTP是无连接的:每次连接只处理一个请求,服务器处理完客户端的请求并收到客户端的应答后就断开连接。
-HTTP是媒体独立的:只要客户端和服务器端知道如何处理数据内容,任何类型的数据都可以通过HTTP发送。
-HTTP是无状态协议:该协议对于事物处理没有记忆能力。如果后续处理需要前面的信息,则必须重传。
客户端请求消息
格式:请求行,请求头部,空行,请求数据
-请求行:请求方法+空格+URL+协议版本+回车+换行符
-请求头部:头部字段名+:+值+回车+换行
………………………………
头部字段名+:+值+回车+换行
空行:回车+换行符
请求数据:略略略
GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi
服务器响应

http常见状态码
1开头的 信息,服务器收到请求,需要请求者继续执行操作
-100 Continue 继续,post第一次请求返回
2开头的 成功,操作被成功接收并处理
-200 OK 请求成功,一般用于post和get
3开头的 重定向,需要进一步的操作以完成请求
-300 Multiple Choices 多种选择,请求的资源可包含多个位置
-304 Not Modified 未修改,所请求的资源未更改,客户端会缓存访问过的资源,再次请求相同资源,服务器不返回任何资源。
4开头的 客户端错误,请求包含语法错误或者无法完成的请求
-400 Bad Request 客户端请求的语法错误,服务器无法理解
-401 Unauthorized 请求要求用户的身份验证
-403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
-404 Not Found 服务器无法根据客户端的请求找到资源
-408 Requet Timeout 服务器等待客户端的请求时间过长,超时
5开头的 服务器端错误,服务器在处理请求的过程中发生了错误
-500 Internal Server Error 服务器内部错误,无法完成请求
-501 Not Implemented 服务器不支持请求的功能,无法完成请求
-502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
-503 Service Unavailable 由于超载或系统维护,服务器暂时无法处理客户端的请求
-504 Gateway Timeout 充当网关或代理的服务器,未及时从远程服务器获取请求
-505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理
https
超文本传输安全协议(Hyper Text Transfer Proteocol over Secure Scocket Layer或Transport Layer Security[TLS])。在HTTP层下加入SSL层。
https与http的区别
-https协议需要到ca申请证书,一般需要付费
-http是超文本传输协议,明文传输,https是具有安全性的ssl加密传输协议
-https与http使用完全不同的连接方式,前者端口为443,后者端口为80
-http 是无状态连接,https协议是ssl+http构建的课进行加密传输,身份验证的网络协议。
Soap(Simple Object Access Protocol)
Soap是交换数据的一种协议规范,是一种轻量的,简单的,基于XML的协议,用于在WEB上交换结构化和固化的信息。
webService三要素
-SOAP 描述传递信息的格式
-WSDL(Web Services Description Language) 描述如何访问具体的接口
-UDDI(Universal Description Discovery and Integration) 管理,分发,查询webService
核心技术
SOAP采用了HTTP和XML,HTTP用于实现SOAP的RPC风格的传输,XML是编码格式。一个SOAP方法可以简单地看做遵循SOAP编码规则的HTTP请求和响应,一个SOAP终端则可以看做一个基于HTTP的URL,它用来识别方法调用的目标。
RPC
远程过程调用(Remote Procedure Call)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。
FTP
文件传输协议(File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议。使用TCP传输,连接需要先进行“三次握手”的过程,保证客户端与服务器之间的连接是可靠的,而且是面向连接,为数据传输提供可靠服务。
允许用户以文件操作的方式(如文件的增,删,改,查,传送等)与另一台主机相互通信。用户并不真正登录到自己想要存取的计算机上面成为用户,可用FTP程序访问远程资源,实现用户往返传输文件,目录管理以及访问电子邮件等。
网友评论