内容简介

1第三部分第二课:IP地址和域名

2、第三部分第三课预告:协议


第三部分第二课:IP地址和域名

上一课我们说了在Web之中,全球各地有无数台机器,有些充当客户机,有些作为服务器。

那么这些机器如何找到和辨认彼此呢?难道不会“只是因为在人群中多看了你一眼,再也没能想起你容颜”吗?

如果我用我的浏览器上网,我怎么知道哪个服务器向我发送此网站呢?

为了解决这个难题,IT科学家们使用了一个叫做IP地址的东西(东西好像有点太难听了,IP它根本就不是个东西好嘛)。

IP是Internet Protocol的简称,英语意为“互联网协议”。

IP地址就是用来表示每一台连接Web的机器的。而且是唯一标识(当然我们在【TCP/IP探索之旅】中会讲到不同类别的IP地址,有些是可以重复的,牵涉到局域网,广域网,公有地址和私有地址等概念,在此不深究)。

我们暂时只要了解:大范围来讲,全球每台电脑都有一个独一无二的IP地址,就好像是它的唯一铭牌。我们可以把“电脑”比作“电话”,那么“IP地址”就相当于“电话号码”。


IPv4和IPv6

IPv4和IPv6是IP地址的不同版本,v4就是第四版(v是英语version的首字母,version意为“版本”),那么v6就是第六版。

IPv4的地址长度为32位(共有2^32(2的32次方)个IP地址),分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。例如159.226.13.1。

IPv6的地址长度为128位(共有2^128(2的128次方)个IP地址),分为8段,每段16位,用十进制数字表示,每段数字范围为0~65535,段与段之间用句点隔开。如果每个16位用16进制表示,那么例如1080:0000:0000:0000:0008:0800:200C:417A。

互联网当前使用的主要是基于IPv4协议的32位地址,地址总容量近43亿个。而IPv6地址采用128位标识,数量为2的128次方,相当于IPv4地址空间的4次幂。

有人曾形象地比喻:“IPv6可以让地球上每一粒沙子都拥有一个IP地址。”

实际上,并不急于推广IPv6,只需在现有的IPv4基础上将32位扩展8位到40位,即可解决IPv4地址不够的问题。这样一来可用地址数就扩大了256倍。

我们的课程中还是以IPv4的地址值来举例。

例如我们有以下IP地址:

难道我们每次上网,都要在地址栏里输入这样的数字才能找到我要的网页吗?这样的话太累了,臣妾做不到啊。

那怎么办呢?于是域名应运而生。


域名

因为直接记每个IP地址太难,所以人们想到了用人类易于记忆的名字来代替数字。比如,上面例子中的 205.89.177.26,其实是曾经Google首页的IP地址。所以我们就用一个域名(domain name)来代替,也就是:google.com

但是我们的服务器其实只认得数字形式的IP地址。所以我们需要一个“中间人”,将google.com这样的域名先解析成205.89.177.26,然后再找到对应的网页。

这个中间人就是DNS,Domain Name System(域名系统),是Internet的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。

有了DNS,我们就可以轻松地在地址栏输入 google.com,然后经过DNS解析,变为对应的IP地址,再由服务器读取。

DNS是由域名解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。


总结

  1. IP地址使我们可以找到地球上每台联网的电脑。

  2. 记住域名比IP地址方便,而从域名到IP地址的解析是通过DNS。


第三部分第三课预告

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

下一课我们学习:协议


程序员联盟 微信公众号

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

*新朋友请关注「程序员联盟」微信搜公众号  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探索之旅】第三部分第二课:IP地址和域名的更多相关文章

  1. 【C++探索之旅】第一部分第二课:C++编程的必要软件

    内容简介 1.第一部分第二课:C++编程的必要软件 2.第一部分第三课预告:第一个C++程序 C++编程的必要软件 经过上一课之后,大家是不是摩拳擦掌,准备大干一场了呢. 这一课我们来做一些C++开发 ...

  2. 【Linux探索之旅】第一部分第二课:下载Linux,免费的噢

    内容简介 1.第一部分第二课:下载Linux,免费的噢 2.第一部分第三课预告:测试并安装Ubuntu 下载Linux,免费的噢 大家好,上一课我们认识了非常“霸气侧漏”的Linux操作系统. 也知道 ...

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

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

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

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

  5. 【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布

    内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做 ...

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

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

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

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

  8. CentOS工作内容(三)配置网络IP地址

    CentOS工作内容(三)配置网络IP地址 用到的快捷键 tab 自动补齐(有不知道的吗) ctrl+a 移动到当前行的开头(a ahead) ctrl+u 删除(剪切)此处至开始所有内容 vim 末 ...

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

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

随机推荐

  1. 理解 Python 中的线程

    原地址:http://blog.jobbole.com/52060/ 本文由 伯乐在线 - acmerfight 翻译自 Akshar Raaj.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. 我 ...

  2. TR90眼镜_百度百科

    TR90眼镜_百度百科 TR90眼镜

  3. Fluentd: Open Source Log Management

    Fluentd: Open Source Log Management "Fluentd" is an open-source tool to collect events and ...

  4. Nagios的客户端的安装

    一.Linux服务器的nagios客户端的安装 步骤: 1.  创建目录,上传文件到该目录 mkdir /data nagios-plugins-2.1.1.tar.gz nrpe-2.12.tar. ...

  5. 【瞎搞】 HDU 3101 The Heart of the Country

    比赛时愣是没读懂 题意:有N 个城市 每一个城市都有 val 个 士兵 , 有几条路连接 当敌方攻击你的某个城市时 该城市以及与该城市相连接的城市的士兵总数 要大于 K 不大于 K 该城市就被攻陷.士 ...

  6. cocos2d-x(十二)Lua开发飞机大战-7-加入敌机

    Lua本是一门面向过程的解释性语言.但在开发过程中有很多人还是习惯于面向对象编程.在Lua中我们能够使用table模拟类.只是写起来不太爽(特别是在继承一些C++类的时候).通过查看演示样例.发现co ...

  7. Android SDK r23

    SDK Tools Only Platform Package Size MD5 Checksum Windows 32 & 64-bit android-sdk_r23-windows.zi ...

  8. Android消息推送(二)--基于MQTT协议实现的推送功能

    国内的Android设备,不能稳定的使用Google GCM(Google Cloud Messageing)消息推送服务. 1. 国内的Android设备,基本上从操作系统底层开始就去掉了Googl ...

  9. 如何收集 EBS 各种相关业务的表的数据

    1. Receiving 相关 參照 Note: 402245.1, 跑 rcv11i_sa.sql 就能够, 输入 po number, 其余默认. 參照 Note: 1294177.1, 假设上面 ...

  10. Uva10290 - {Sum+=i++} to Reach N

    Problem H {sum+=i++} to Reach N Input: standard input Output:  standard output Memory Limit: 32 MB A ...