内容简介

1第三部分第三课:协议

2、第四部分预告:Web程序员


第三部分第三课:协议

之前的课,我们学习了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中的机器只要遵循同样协议,就可以相互交流。

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


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参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。


HTTP,HTTPS,FTP和SMTP

HTTP协议可以说是Web领域最重要的上层协议了。

HTTP

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

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

HTTPS

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

FTP协议

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

SMTP协议

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


总结

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


第四部分预告

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

下一课我们学习:Web程序员


程序员联盟 微信公众号

*您若觉得本文不错,请点击画面右上角《···》按钮分享

*新朋友请关注「程序员联盟」微信搜公众号  ProgrammerLeague

程序员联盟官网:

http://coderunity.com/

小编微信号: frogoscar

小编邮箱:    enmingx@gmail.com

小编QQ号:  379641629

程序员联盟QQ群:413981577

程序员联盟微信群:先加我微信

头条网自媒体“程序员联盟”:

http://www.toutiao.com/m3750422747/

小编的51CTO博客,CSDN博客,博客园,新浪博客和开源中国博客
http://4526621.blog.51cto.com

http://blog.csdn.net/frogoscar

http://www.cnblogs.com/frogoscar

http://blog.sina.com.cn/frogoscar

http://my.oschina.net/frogoscar/blog

【打赏小编】

觉得文章对您有帮助,请纪念小编的辛勤劳动,扫描二维码打赏小编,谢谢!

支付宝

Paypal

【Web探索之旅】第三部分第三课:协议的更多相关文章

  1. 【Web探索之旅】第二部分第三课:框架和内容管理系统

    内容简介 1.第二部分第三课:框架和内容管理系统 2.第二部分第四课预告:数据库   第二部分第三课:框架和内容管理系统 上一课我们介绍了服务器端的编程语言,有PHP,Java,Python,Ruby ...

  2. 【Web探索之旅】第二部分第五课:响应式网站和移动应用

    内容简介 1.第二部分第五课:响应式网站和移动应用 2.第三部分第一课预告:服务器 第二部分第五课:响应式网站和移动应用 在我们开始聊响应式网站之前,我们可以聊聊移动App(App是Applicati ...

  3. 【Web探索之旅】第二部分第四课:数据库

    内容简介 1.第二部分第四课:数据库 2.第二部分第五课预告:响应式网站 第二部分第四课:数据库 说到“数据库”,顾名思义,是“数据的仓库”的意思. 所以数据库的一大作用就是储存数据咯. 为什么Web ...

  4. 【Web探索之旅】第三部分第一课:服务器

    内容简介 1.第三部分第一课:服务器 2.第三部分第二课预告:IP地址和域名 第三部分第一课:服务器 大家好,欢迎来到[Web探索之旅]的第三部分.这一部分有不少原理,还是很重要的. 这一部分我们会着 ...

  5. 【Web探索之旅】第三部分第一课:server

    wx_fmt=jpeg" alt="0? wx_fmt=jpeg" style="height:auto"> 内容简单介绍 .第三部分第一课:s ...

  6. 【Web探索之旅】第四部分:Web程序员

    内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[W ...

  7. 【Web探索之旅】第一部分:什么是Web?

    内容简介 1.Web探索之旅:开宗明义 2.第一部分第一课:什么是Web? 3.第一部分第二课:Web,服务和云 4.第一部分第三课:Web的诞生史 Web探索之旅:开宗明义 大家好. 我们这个系列课 ...

  8. 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?

    内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的, ...

  9. 【Linux探索之旅】开宗明义+第一部分第一课:什么是Linux?

    内容简介 1.课程大纲 2.第一部分第一课:什么是Linux? 3.第一部分第二课预告:下载Linux,免费的噢!   开宗明义 我们总听到别人说:Linux挺复杂的,是给那些追求逼格的程序员用的.咱 ...

  10. 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

    内容简单介绍 .第二部分第五课:用户和权限,有权就任性 2.第二部分第六课预告:Nano,刚開始学习的人的文本编辑器 用户和权限.有权就任性 今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的吗 ...

随机推荐

  1. ONVIFclient搜索设备获取rtsp解决开发笔记(精华文章)

    总结:           眼下ONVIF协议系列设备已经超过一半的数字监控行业占据更多,关闭,作为一个开发者,你还在犹豫下就明白了?本文介绍了ONVIFclient从搜索,认证,获取,媒体信息获取. ...

  2. poj1269(直线交点)

    传送门:Intersecting Lines 题意:给出N组直线,每组2条直线,求出直线是否相交.如果共线则输出LINE,相交则输入点坐标,否则输出NONE. 分析:模板裸题,直接上模板... #in ...

  3. 用VLC搭建流媒体server

    VLC开元项目相当强大,我们既能够将其作为播放核心用于二次开发,又能够将其作为高性能的流媒体server.今篇博客主要讲用VLC搭建流媒体server. VLC搭建流媒体server步骤非常easy: ...

  4. GMM高斯混合模型学习笔记(EM算法求解)

    提出混合模型主要是为了能更好地近似一些较复杂的样本分布,通过不断添加component个数,能够随意地逼近不论什么连续的概率分布.所以我们觉得不论什么样本分布都能够用混合模型来建模.由于高斯函数具有一 ...

  5. POJ1611 The Suspects (并查集)

    本文出自:http://blog.csdn.net/svitter 题意:0号学生染病,有n个学生,m个小组.和0号学生同组的学生染病,病能够传染. 输入格式:n,m 数量  学生编号1,2,3,4 ...

  6. poj3678(two-sat)

    传送门:Katu Puzzl 题意:n个点,点的取值可以是0或者1.m条边,有权值,有运算方式(并,或,异或),要求和这条边相连的两个点经过边上的运算后的结果是边的权值.问你有没有可能把每个点赋值满足 ...

  7. 开源图计算框架GraphLab介绍

    GraphLab介绍 GraphLab 是由CMU(卡内基梅隆大学)的Select 实验室在2010 年提出的一个基于图像处理模型的开源图计算框架.框架使用C++语言开发实现. 该框架是面向机器学习( ...

  8. SE 2014年5月25日

    如图配置 两实验 R1模拟总部,R2 与R3模拟分部 实验一  要求使用 IPSec VPN 主模式,使得总部与两分部内网可相互通讯 步骤: 1.  配置默认路由 [RT1]ip route-stat ...

  9. TCP closing a connection

    client closes socket: clientSocket.close(); step1 :client sends TCP FIN control segment to server st ...

  10. 一个简单而经典的RTX51 Tiny应用实例

    关于RTX51 Tiny嵌入式实时操作系统的描写叙述请參考本人的上一篇博文(RTX51 Tiny实时操作系统学习笔记-初识RTX51 Tiny). 本篇博文.我将通过一个实例代码,带大家深入了解一下R ...