应用层位于操作系统用户态运行,而我们前面讲到的那层是运行在操作系统内核态的:
一般我们都是通过Socket网络API来访问内核态的各层的协议模块。
常见的应用层协议如下:
HTTP
:Hypertext Transfer Protocol,超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法;HTTPS
:Hypertext Transfer Protocol Secure,安全超文本传输协,是HTTP的扩展,用于在计算机网络上进行安全的通信,并在Internet上广泛使用;流媒体
:流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。P2P协议
:Peer-to-peer,计算或联网是一种分布式应用程序体系结构,可在对等体之间划分任务或工作负载;对等方可以将其部分资源(例如处理能力,磁盘存储或网络带宽)直接提供给其他网络参与者,而无需服务器或稳定主机的集中协调。大家经常用的迅雷下载,百度网盘下载就用到了这个协议;WebSocket
:WebSocket是一种计算机通信协议,与HTTP不同,WebSocket可通过单个TCP连接提供全双工通信通道。WebSocket在HTML5规范中最初被称为TCPConnection,是基于TCP的套接字API的占位符。很多在线聊天室,办公协同软件都用到了WebSocket。
在应用层,大部分的开发工程师可以大展拳脚。
- HTTP协议的实现,最经典的莫过于Tomcat服务器了,关于具体的实现,可以参考这本书:《深入剖析Tomcat》;
- Github上面有一个WebSocket协议的Java实现,感兴趣的朋友可以研究下:Java-WebSocket[1]
更多关于应用层的相关介绍,我会后续更新,感兴趣的朋友记得关注本公众号进一步跟进学习交流哦。