对于初学者来说,最大的难题就是网络到底是怎么运作的.所以了解http协议以及网络原理是很重要的,这将为后面的学习打下坚实的基础.
声明:以下内容有引用别人的博文,我会附录在最后.另外,由于水平有限,可能某些地方理解不够深入,有错误欢迎指出.我会尽量以通俗的语言说明,有些术语不严谨请见谅.
网络原理
当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。 原理是怎样的呢?
实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器, 浏览器解析Response中的HTML,这样我们就看到了网页,过程如下图所示
也就是说,我们平时访问网站,就是通过浏览器向服务器发送请求,然后服务器根据请求返回相应的文件.例如说:我们访问谷歌,浏览器就会发送一个请求报文headers,如下图.这个涉及到http协议,后面会详细说.
(下面的控制台是在chrome浏览器下按f12调用出来的,初学者可以亲自试试,很强大的web调试工具,当然在ie和firefox耶也有相应的调试工具)
然后服务器接收到报文之后,确认请求合法,返回请求页面.如下图.然后浏览器根据得到的内容解析成为我们看到的页面.
通过上面的例子,我们可以看到,网络访问实际上就是客户端请求服务器,服务器返回相应文件给客户端的过程.
在网页浏览层面,客户端就是浏览器,在软件应用层面如qq,客户端就是相应的软件.他们与服务器的交互大多数都是通过http协议.只不过浏览器通常得到的是html文件和数据,而软件得到的一般是数据.其实质是一样.也就是说,在与服务器交互的过程,浏览器和普通软件用的是同一套方法,我们掌握了web服务器交互,自然app服务器交互也就会了.
既然网络访问实质上是文件的请求与传输,而国有国法,家有家规,同样的,这个过程也需要一个规则,OSI网络模型是最基本的东西,应该说是一种思想,各种协议建立在这个模型上面.
OSI七层模型是比较抽象的东西,我就不提了,有兴趣的自行谷歌一下.跟我们开发最密切实际相关的就是http协议和ftp协议.这两种方式都可以用来与服务器交互.一般来说,http协议用于网页浏览,ftp协议用于文件传输.(我们上一节提到的上传源码到服务器就是通过ftp协议).ftp协议没什么好说的,会用ftp软件就行.有兴趣钻研的可以谷歌更多信息了解.重点是http协议的理解.