如何理解通信协议?
【程序员】 与 【计算机】 两两之间进行通信交流有如下三种组合:
1、程序员---程序员
交流方式:汉语、英语、日语...
2、程序员---计算机
交流方式:JavaScript、c/c++、java、C#、Python...
3、计算机---计算机
交流方式:http、ftp、smtp/pop...
协议的本质就是交互双方以约定的的方式进行沟通
思考问题:计算机如何找到彼此?
确切的说计算机上的应用程序如何找到另一台计算机上的相同的应用程序?
IP地址:唯一确定网络的一台电脑
端口:确定电脑上的具体哪个应用程序
域名:由于IP地址不方便记忆,所以给IP地址起了个别名---域名,也就是通过域名可以找到对应的IP地址
DNS:domain name system 域名系统,保存了域名和IP地址的对应关系
所以访问一个网页的流程是这样的:
http://www.baidu.com
- 通过域名查询DNS系统找到IP地址
- 通过IP地址找到百度的服务器
- 通过80端口找到百度服务器上的应用程序Apache或者nginx等
- 服务器返回网页内容,
- 浏览器把内容渲染成页面