对于理解服务器和网络来说,「协议」是不可缺少的概念。

「协议(protocol)」有「规则,规定」的意思。

实际上「协议」的函数很广,在通信领域,「协议」规定了「在通信时,什么样的情况下,以什么样的顺序,什么样的方式交互什么样的数据」。

抽象的去理解「协议」可能会比较困难,下面来举个例子。

通过Web以HTML方式交互时使用的协议是「HTTP」(Hyper Text Transfer Protocol)。这个协议最重要的就是规定了服务器和客户端之间以HTML方式交互的规则。

比如,客户端连接上服务器之后,向服务器发送

GET /

之后,Web服务器就会向客户端发送对应的 HTML 文档。

像这样一系列的规定就是「协议」。

显然,这种规定无论在哪里的互联网上都是通用的。即,「协议」也可以说成是「共通的规则」(当然,使用的协议的版本不同,也有可能会不一样)。

那么,互联网通信使用的各式各样的协议包括:

  • 「http」:HTML方式交互的协议
  • 「SMTP」:发送电子邮件的协议
  • 「FTP」:文件传输协议
  • 「TCP」:1对1传输数据的协议
  • 「IP」:互联网上传输数据的协议

等等。。。

这些协议的名称都是以「P」结尾的,「P」就是「Protocol」,所以看到这些名字就会让人知道这是一个协议。

有时候会问「通过互联网访问Web站点的时候使用的是哪种协议」,是HTTP还是TCP还是IP?还是其它?

答案是。。。「HTTP,TCP,IP都要使用」。

其实,网络通信的时候,并不是只使用一个协议,而是多个协议组合使用的。就是这点容易导致初学者的混乱。

Linux 小知识翻译 - 「协议(protocol)」的更多相关文章

  1. Linux 小知识翻译 - 「邮件服务器」

    这次聊聊「邮件服务器」. 邮件服务器上通常会运行2个服务端软件,「SMTP服务器」和「POP服务器或者IMAP服务器」. 这2个东西,也许使用邮件客户端的人立马就明白了.因为设置邮件客户端的时候,需要 ...

  2. Linux 小知识翻译 - 「桌面环境」

    这次聊聊桌面环境. 上次聊了 X Window System 相关的内容,虽然令人意外,但X Window System 和桌面环境不是一回事.请大家稍微考虑一下. X Window System 是 ...

  3. Linux 小知识翻译 - 「TCP/IP」

    上次说了「协议」相关的话题,这次专门说说「TCP/IP」协议. 这里的主题是「TCP/IP」到底是什么?但并不是要说明「TCP/IP」是什么东西,重点是「TCP/IP」究竟有什么意义,在哪里使用「TC ...

  4. Linux 小知识翻译 - 「环境变量」

    这次,谈谈关于「环境变量」的话题. 所谓变量,就是在程序中设置的,相当于在内存中准备的「一个用来存放数据的小箱子」. 即,程序通过变量来保存值,通过变量保存的内容来进行各式各样的计算处理. 「环境变量 ...

  5. Linux 小知识翻译 - 「Shell 脚本」

    这次说说「Shell 脚本」. 根据上回的介绍,Shell就是「作为联系Linux和用户的接口而存在的软件」.在Linux环境中,通过Shell来操作系统很普遍. 这里,考虑到有时候可能想要「多次的进 ...

  6. Linux 小知识翻译 - 「架构 续」(arch)

    上次,从「计算机的内部构造」的角度解释了架构这个术语.这次,介绍下架构中经常提到的「i386架构」及之后的「i486」,「i586」. 安装Linux的时候,很多人即使不了解但也会经常听到i386架构 ...

  7. Linux 小知识翻译 - 「端口限制」

    上次说了端口号相关的内容,这次聊聊「端口限制」的事. 经常看到关于安全的书籍上会说「不要开放多余的端口」,那么,如何限制端口才好呢? 实际,端口限制的方法大体上分的话有2种. 其一,「通过应用程序来处 ...

  8. Linux 小知识翻译 - 「路径设置」

    这次聊聊路径的使用,这里的路径是「命令搜索路径」的简称. 在Linux上执行命令的时候,本来是需要命令的所在位置的绝对路径的,就像「/usr/bin/passwd」这样. 但是,对于经常使用的命令,如 ...

  9. Linux 小知识翻译 - 「动态DNS」(DDNS)

    这次聊聊「动态DNS」. DNS上周已经介绍过了,就是提供主机名和IP地址对应关系的结构.「动态DNS」是对主机名和IP地址的对应关系提供动态管理的结构. 以前的DNS没有考虑IP地址变化的情况.但是 ...

随机推荐

  1. ACM 要学

    初期: 一.基本算法: (1)枚举. (poj1753,poj2965)  (2)贪心(poj1328,poj2109,poj2586)  (3)递归和分治法.  (4)递推.  (5)构造法.(po ...

  2. MongoDB调优-查询优化-MongoDB Profiler

    MongoDB查询优化-MongoDB Profiler MongoDB Profiler 概述 官方文档:https://docs.mongodb.com/manual/tutorial/manag ...

  3. SaltStack快速入门-配置管理

    1:定义远程配置时描述位置,salt配置用的是一种yaml的描述语法,saltstack也是可以分环境的,比如测试环境.生产环境,默认是base,base也是必须存在的,修改内容如下: file_ro ...

  4. vue 动态组件、父子组件传参

    1.vue中的自定义属性并获得属性的值 自定义属性::data-id语法为 :data-属性  获取属性的值:ev.target.dataset.id 2.vue父子组件传值 3.动态组件使用

  5. springboot+cloud 学习(四)Zuul整合Swagger2

    前言 在微服务架构下,服务是分散的,怎么把所有服务接口整合到一起是我们需要关注的. 下面举例用zuul作为分布式系统的网关,同时使用swagger生成文档,想把整个系统的文档整合在同一个页面上来说明. ...

  6. c# 对html字符串进行编码

    /// <summary> /// 对html字符串进行编码 /// </summary> /// <param name="html">htm ...

  7. c# Datatable导出Excel

    using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; ...

  8. 如何将一个HTML页面嵌套在另一个页面中

    一 在原页面嵌入其他页面 1.使用iframe框架 客户端页面嵌套可以使用iframe的方法,弊端是必须事先想好被嵌套的页面在首页中要占多大的位置. 如果被嵌套页面太大,超过事先定义的宽度或高度,则首 ...

  9. 【hibernate】1、Hibernate的一个注解 @Transient

    @Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic ...

  10. 【开发工具之eclipse】7、eclipse代码自动提示,eclipse设置代码自动提示

    首先打开Eclipse开发软件,然后在工具栏的[Window],点击后找到弹出列表中的[Preferences]选项,然后点击这个选项   现在弹出的窗口就是JAVA开发人员常见的设置窗口了,我们依次 ...