【Web探索之旅】第三部分第三课:协议



内容简介

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程序员



程序员联盟社区

目前有一个微信群和一个QQ群,凡是对编程感兴趣的朋友都可以加,大家可以交流,学习,互动,讨论编写的程序的源代码,编程问答等。

微信群(程序员联盟),加群请私信我(微信群人数超过100之后,不能通过扫描二维码加入了,只能私信我,谢谢)

QQ群: 413981577 (1000人群)

QQ群文件里有很多编程书籍PDF和其他资料。扫描下面二维码加QQ:

我们还建立了一个公共的百度云盘,2TB容量,已有很多优秀编程资源,大家也可以上传。链接加群之后会发送。

百度贴吧 【程序员联盟】 欢迎您加入,交流编程,讨论代码,共享资源,已经有很多话题。吧主就是小编。

http://tieba.baidu.com/f?kw=%E7%A8%8B%E5%BA%8F%E5%91%98%E8%81%94%E7%9B%9F&ie=utf-8

《程序员联盟》的微社区,方便大家提问和互动。可以关注一下。

微社区地址和二维码如下:

http://m.wsq.qq.com/264152148

谢谢!



程序员联盟 微信公众号

*您若觉得本文不错,请点击画面右上角《···》按钮“分享到朋友圈”或“发送给朋友”

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

小编微信号: frogoscar

小编QQ号:  379641629

小编邮箱:    [email protected]

程序员联盟QQ群:413981577

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

有朋友反映看手机端的文章太累,其实是可以用浏览器网页来看的:

方法1. 点击画面右上角的《···》按钮,然后选择“复制链接”,再把链接黏贴到你的浏览器里面或用邮件发送给自己,就可以在电脑的浏览器里打开了

方法2. 头条网www.toutiao.com,搜索我的自媒体“程序员联盟”,内有所有文章,也可以直接进这个链接:http://www.toutiao.com/m3750422747/

方法3. 我的51CTO博客,CSDN博客,博客园和开源中国博客链接(所有文章都在上面)
http://4526621.blog.51cto.com

http://blog.csdn.net/frogoscar

http://www.cnblogs.com/frogoscar

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

如何查看所有文章

1. 点击“查看公众号”,再点击“查看历史消息

2. 在公众号回复任何信息,可以看到包含“查看历史消息”的链接。

【支持小编的劳动】

觉得文章对你有帮助,请纪念小编的辛勤劳动,扫描二维码捐赠给小编,谢谢!

支付宝

Paypal

时间: 2024-10-13 07:22:57

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

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

内容简介 1.第二部分第三课:框架和内容管理系统 2.第二部分第四课预告:数据库 第二部分第三课:框架和内容管理系统 上一课我们介绍了服务器端的编程语言,有PHP,Java,Python,Ruby,C#等. 这一课我们来学习基于这些语言衍生出来的框架(Framework),然后我们再来看看什么是内容管理系统(CMS). 框架(Framework) 什么是Framework(框架)呢?要给出一个准确的定义很难.因为它有不少不同的定义.可以自行参看这个百度百科: http://baike.baidu

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

内容简介 1.第二部分第五课:响应式网站和移动应用 2.第三部分第一课预告:服务器 第二部分第五课:响应式网站和移动应用 在我们开始聊响应式网站之前,我们可以聊聊移动App(App是Application的缩写,意为"应用"). 自从触屏式手机和平板电脑开始流行起来后(多亏乔布斯乔老爷子推广了iPhone),传统的网站和软件行业发生了翻天覆地的变化.以前,我们用手机最多是打电话,发短信,玩游戏,很难得会在手机上浏览网页. 可是自从触屏技术开始流行后,大大提高了人们在手机和平板上&quo

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

内容简介 1.第二部分第四课:数据库 2.第二部分第五课预告:响应式网站 第二部分第四课:数据库 说到"数据库",顾名思义,是"数据的仓库"的意思. 所以数据库的一大作用就是储存数据咯. 为什么Web领域要有数据库呢? 数据库的英语是Database,简单来说可视为电子化的文件柜(存储电子文件的处所),用户可以对文件中的数据运行新增.截取.更新.删除等操作.它是以一定方式储存在一起.能为多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合. 关系型数据库

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

内容简介 1.第三部分第一课:服务器 2.第三部分第二课预告:IP地址和域名 第三部分第一课:服务器 大家好,欢迎来到[Web探索之旅]的第三部分.这一部分有不少原理,还是很重要的. 这一部分我们会着眼于一个Web site(网站)是如何工作的,我们会更深入地了解Web背后的网络.这里的网络是network,泛指Web中的各台机器之间互相"交流". 还记得我们之前将Web形象地比喻成什么吗? 对了,就是一个很大的蜘蛛网.对于有蜘蛛恐惧的朋友我只能献上我诚挚的歉意,看到我真挚的表情了吗.

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

内容简单介绍 1.第三部分第一课:server 2.第三部分第二课预告:IP地址和域名 第三部分第一课:server 大家好,欢迎来到[Web探索之旅]的第三部分.这一部分有不少原理.还是非常重要的. 这一部分我们会着眼于一个Web site(站点)是怎样工作的,我们会更深入地了解Web背后的网络. 这里的网络是network.泛指Web中的各台机器之间互相"交流". 还记得我们之前将Web形象地比喻成什么吗? 对了,就是一个非常大的蜘蛛网.对于有蜘蛛恐惧的朋友我仅仅能献上我诚挚的歉意

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

内容简介 1.Web探索之旅:开宗明义 2.第一部分第一课:什么是Web? 3.第一部分第二课:Web,服务和云 4.第一部分第三课:Web的诞生史 Web探索之旅:开宗明义 大家好. 我们这个系列课程相对比较简单,比[C语言探索之旅],[C++探索之旅],[Linux探索之旅],[TCP/IP网络探索之旅]简单,会让大家在轻松中理解关于Web的方方面面. 您是否对Web感兴趣但是不知道什么是Web呢? 您是否觉得"网络黑客"很神秘? 您是否不清楚Internet和Web有什么区别?

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

内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[Web探索之旅]的最后一部分. 我们的第二和第三部分都略有难度,不过这第四部分和第一部分一样,都会比较轻松愉快. 这一课我们来聊一聊Web程序员,Web的文化,如何成为一名优秀的Web程序员. 或许看完这部分,你会跃跃欲试,想要成为一名Web程序员也不一定.毕竟现在Web程序员还是比较吃香的. 第四部

【C++探索之旅】第一部分第八课:传值引用,文件源头

内容简介 1.第一部分第八课:传值引用,文件源头 2.第一部分第九课预告:数组威武,动静合一 传值引用,文件源头 这一课的标题有点怪.其实是由这一课的几个重点内容结合起来取的名,慢慢学习就知道啦. 上一课<[C++探索之旅]第一部分第七课:函数效应,分而治之>中,我们初步认识了函数. 不过不要高兴得太早,你以为函数就这样离你远去了嘛?怎么可能,函数将伴随一生好吗,只要你继续编程的话.哈哈,所以你是跑不掉了~ [小编,都跟你签了协议了,没吃药不要随便出来溜达] 这一课我们就继续深入学习与函数相关

【C++探索之旅】第一部分第十一课:小游戏,猜单词

内容简介 1.第一部分第十一课:小游戏,猜单词 2.第一部分第十二课预告:指针一出,谁与争锋 小练习 上一课<[C++探索之旅]第一部分第十课:文件读写,海阔凭鱼跃>中我们学习了读写文件的知识. 第一部分的课程也快接近尾声了,下一课我们会学习很重要的指针的知识.之后,我们就进入第二部分:面向对象编程了.哈哈哈,激动不? 目前为止,我们也学了不少内容:编译基本原理,IDE,变量,函数,条件语句,循环语句,引用,数组,文件读写,等等.你应该为自己感到自豪. 俗语说得好:实践是最好的老师.我们学了那

【C++探索之旅】第一部分第七课:函数效应,分而治之

内容简介 1.第一部分第七课:函数效应,分而治之 2.第一部分第八课预告:传值引用,文件源头 函数效应,分而治之 上一课<[C++探索之旅]第一部分第六课:控制流程,随心所至>中,我们学习了条件语句和循环语句. 这两种语句也算是算法的核心了.在更早的课程中,我们学习了变量.这些都是所有编程语言的必备元素. 这一课我们又要学习一个几乎所有编程语言都有的极重要元素: 函数. C++的所有程序都或多或少用到函数,到目前为止,你其实也已经用了好多次了,不过你可能只缘身在此山中,还云深不知处. 函数的功