协议
一旦客户端连接到特定端口上的服务,它就使用特定的协议访问该服务。协议是想要使用服务的人与该服务通信的预定义方式。“某人”可以是人,但更常见的是像Web浏览器这样的计算机程序。协议通常是文本,简单地描述客户端和服务器将如何进行对话。
也许最简单的协议是日间协议(daytime protocol)。如果你连接到支持日间服务器(daytime server)的机器上的端口13,服务器将向你发送其对当前日期和时间的理解,然后关闭连接。该协议是:“如果你连接到我,我将发送日期和时间,然后断开连接。”大多数UNIX机器都支持此服务器。如果你想尝试一下,可以使用Telnet应用程序连接到其中一台机器。在UNIX中,会话将如下所示
广告
%telnet web67.ntx.net 13Trying 216.27.61.137...Connected to web67.ntx.net.Escape character is '^]'.Sun Oct 25 08:34:06 1998Connection closed by foreign host.
在Windows机器上,你可以在MSDOS提示符下输入“telnet web67.ntx.net 13”来访问此服务器。
在此示例中,web67.ntx.net是服务器的UNIX机器,13是日间服务(daytime service)的端口号。Telnet应用程序连接到端口13(Telnet默认连接到端口23,但你可以指示它连接到任何端口),然后服务器发送日期和时间并断开连接。大多数Telnet版本允许你指定端口号,因此你可以使用机器上可用的任何Telnet版本进行尝试。
大多数协议比日间协议更复杂,并在公开发布的征求意见稿(RFC)文档中指定(请参阅http://sunsite.auc.dk/RFC/以获取所有RFC的良好存档)。互联网上的每个Web服务器都符合HTTP协议,该协议在1991年定义的原始HTTP中得到了很好的总结。HTTP服务器理解的最基本协议形式只涉及一个命令:GET。如果你连接到理解HTTP协议的服务器并告诉它“GET filename”,服务器将通过向你发送指定文件的内容然后断开连接来响应。以下是一个典型的会话
%telnet www.十万个为什么.com 80Trying 216.27.61.137...Connected to 十万个为什么.com.Escape character is '^]'.GET https://www.十万个为什么.com/ ...Connection closed by foreign host.
在原始HTTP协议中,你只需发送实际的文件名,例如“/”或“/web-server.htm”。该协议后来被修改为处理完整URL的发送。这使得托管虚拟域(即许多域位于一台机器上)的公司能够为其托管的所有域使用一个IP地址。事实证明,十万个为什么的IP地址209.116.69.66上托管着数百个域。