zoukankan      html  css  js  c++  java
  • Web探索之旅 | 第三部分第三课:协议

    作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。
    转载请注明出处。
    原文:https://www.jianshu.com/p/a3069dd0a016


    《Web探索之旅》全系列

    内容简介


    1. 前言
    2. TCP 和 UDP 协议
    3. HTTP,HTTPS,FTP 和 SMTP
    4. 总结
    5. 第四部分预告

    1. 前言


    之前的课 Web探索之旅 | 第三部分第二课:IP地址和域名 中,我们学习了 Client-Server 模型的客户端语言和服务器语言。

    客户端语言有 HTML,CSS 和 JavaScript。

    服务器语言有 PHP,Java,Python,Ruby,C#,还有新兴的 Go 语言(Google 推出的很强大的编程语言)。

    不过,要使得 Web 中这么多机器之间能够相互通信,例如客户机 A 对服务器 E 说:“你好,请发送 baidu.com 这个网页给我”,是不能借助客户端或服务器语言的。这些语言只能为我们的网页服务。

    那 Web 中的各个机器之间如何对话呢?

    打个比方,电脑 A 对电脑 B 说:“您叫什么名字?”(电脑 A 说中文)。电脑 B 回答:“I beg your pardon?”(电脑 B 说英语,这句话的意思是“您说什么?”),那么这两台电脑因为语言不通,将会无法交流。

    同样的,Web 中的各个机器,需要讲同一种语言,才能相互交流。

    因此,IT 科学家们发明了称为“协议”(Protocol)的通信规范。Web 中的机器只要遵循同样协议,就可以相互交流。

    协议有好多种,我们不一一列举了。我们只说说常用的一些协议,见下图:

    2. TCP 和 UDP 协议


    TCP/IP 协议可以说是 Web 领域最重要的底层协议了。

    TCP 协议

    TCP 是 Transmission Control Protocol(传输控制协议)的简称。

    TCP 是一个端到端(Peer-to-Peer)的传输层协议,处于应用层和网络层之间。在数据传输之前,由 TCP 模块在运行于不同主机上的两个应用程序之间建立直接连接,通常称为虚拟连接,其后的 TCP 报文在此连接的基础上进行传输。TCP 协议在 IP 协议提供的服务基础上,提供面向连接的、可靠的、全双工的数据流传输服务。所以合称 TCP/IP 协议。

    IP 协议(Internet Protocol,互联网协议或网际协议)是 TCP/IP 的心脏,也是网络层中最重要的协议。 IP 层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层 -- TCP 或 UDP 层;相反,IP 层也把从 TCP 或 UDP 层接收来的数据包传送到更低层。

    Vint Cerf,被称为“互联网之父”,译作 温特·瑟夫。主要贡献:与 Robert Kahn 一道领导 TCP/IP 协议的研发小组,为 ARPANET 成功开发了主机协议, 使 ARPANET 成为第一个大规模的数据包网络。

    UDP 协议


    UDP 是 User Datagram Protocol(用户数据报协议)的简称。是 OSI 参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。

    3. HTTP,HTTPS,FTP 和 SMTP


    HTTP

    HTTP 是 HyperText Transfer Protocol(超文本传输协议)的缩写,所有的 WWW 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。我们一般浏览网页,看到的网页地址都是 http:// 这样开头的,后面接域名。例如:http://www.google.com

    看一个例子,是正常情况下 HTTP 的交换信息(返回码 200 表示成功):

    HTTPS


    HyperText Transfer Protocol Secure(安全的超文本传输协议)的缩写,比 HTTP 多加了一层安全防护。我们有时登录一些网站,就可以看到地址栏最前面变为了 https:// 这样开头的的。HTTPS 协议在 HTTP 协议的基础上,添加了 SSL/TLS 握手以及数据加密传输,也属于应用层协议。

    FTP


    File Transfer Protocol(文件传输协议)的缩写。是一套允许文件在不同的Internet计算机之间进行交换的规则。它与 HTTP 不同,后者供网页浏览器请求网页和相关文件以显示某一页面,FTP 只是用来将文件从一台计算机传送到另一台。网站开发人员通常使用 FTP 将网页从他们自己的计算机传送到服务器,FTP 也常常用来将程序和文件从其他服务器下载到个人计算机。

    SMTP


    Simple Mail Transfer Protocol(简单邮件传输协议)的缩写。是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4. 总结


    各种协议(Protocol)规定了 Web 中的各台机器如何通信。

    5. 第四部分预告


    今天的课就到这里,一起加油吧!

    下一课:Web探索之旅 | 第四部分 : Web程序员


    我是 谢恩铭,公众号「程序员联盟」(微信号:coderhub)运营者,慕课网精英讲师 Oscar 老师,终生学习者。
    热爱生活,喜欢游泳,略懂烹饪。
    人生格言:「向着标杆直跑」

  • 相关阅读:
    二进制流 最后一段数据是最后一次读取的byte数组没填满造成的
    java中的匿名内部类总结
    决策树构建算法之—C4.5
    Segment公司--整合数据进行分析
    UBuntu安裝使用PIP
    undefined reference to “boost” in Qt—Ubuntu
    Ubuntu14.04引导菜单修复
    ubuntu16.04下编译安装OpenCV
    PCL:Ubuntu下安装配置PCL
    Ubuntu安装配置Python.pyDev
  • 原文地址:https://www.cnblogs.com/frogoscar/p/13303687.html
Copyright © 2011-2022 走看看