一开始学习网络编程,听起来感觉很难。当时如果按照正确的方法和多理解多思考,学习网络编程其实很简单了。这个过程需要我们不断地里面和码例子,看请来龙去脉,相信如果大家坚持看完学习网络编程知识对大家会很有收获的。如果没有接触过计算机网络的基础知识,推荐一本教科书《计算机网络第六版》,这部书讲得挺不错的,对于入门学习计算机网络的朋友会很有帮助。
1)我点击打开火狐浏览器(百度是我的首页),利用360网络监控查看
3)服务器响应链接:分别点开每一个GET请求,可以看到对应有一个响应头。即服务器给予的响应。
4)客户端处理完每一个响应消息后,就把内容显示在用户的界面后并断开连接。
上述的一个浏览器“百度事件“事实上包含了很多个请求和响应过程。而我们学习网络编程首先是弄清楚每一个请求和响应是怎么产生并交互的。刚才所说到的因特网是一个”嵌套“的网络(网络的网络)。这里理解起来和数据结构的树差不多。每一树都有可能会有父结点和子节点。
比如我现在是通过wifi连接我家的路由,可以理解我需要通过的第一个关口是我家的路由。而我家的路由和隔壁家的路由又是连接我家附近的一个更大的路由器。一层套一层。而每一层中每一个主机(可能是电脑/手机,而事实上作为客户端的是对应设备的程序)使用网络都会有一个ID,用IP地址表示。而对应主机上的应用程序使用”端口“来标志。这样一来,每一台连接到因特网的设备都会有一个独特的地址(IP),并且还有很多个门(端口)。
我们平时搜索本地C盘根目录下的一个”A.txt“文件,比如进去C盘的指令 C:\A.txt,这样就可以直接打开该文件资源。那如果我们和其他的用户设备通过因特网连接起来后,我们是否也可以使用类似的方式请求打开其他用户设备上的资源呢?答案是可以的,前提是在其他电脑的权限允许下。
编程中使用”统一资源定位符URL“来标志因特网上得到的资源的位置。
URL的一般形式为(无大小写区分)
<协议>://<主机>:<端口>/<路径>
<协议>包含有ftp(平时我们迅雷下载的时候应该见过)-文件传输协议FTP;http-超文本传送协议HTTP;News-USENET新闻
<主机>指的是存放资源的主机在因特网中的域名。域名也是唯一标识主机,对用户使用比较人性化。
使用”tracert“路由追踪指令,当我追踪“www.baidu.com”的时候,显示如下
试试上如果我在浏览器访问180.97.33.108也可以访问百度页面
此时域名的作用就体现出来。我们在不同的地区使用追踪”www.baidu.com“,得到的最终路由(也是一台服务器)是一样的。原因是因特网是一个网络套网络的模式,百度的服务器分布全国很多地方。当我们需要访问百度的时候,其背后是去直接或间接连接到当前追踪到的服务器。如果使用IP地址来作为主机标志,那么用户每一次去到一个不同的地方,那么就需要把对应附近的百度服务器IP打进去请求,这样根本不现实。所以统一使用域名来”代表请求的主机地址“,而背后的实现对用户是透明的。
<端口>/<路径>指的是主机上特定的程序中的文件路径(可以省略)
这里就比较简单。如果一台主机比作一件房子,那么IP就是地址,而端口可理解为房子里的房间,端口号就是房间号。如果我要找放在房间号为60且放在衣柜里面的毛衣,可以用地址+”:60/衣柜/毛衣“的形式来访问。
这样一来,我们就可以轻松找到网络上的资源了。
更多内容请关注网络编程连载。
原文地址:http://blog.csdn.net/u010794180/article/details/43934689