网络基本概念:
客户端:移动设备上的App;
服务器:远程服务器或者本地服务器
请求:客户端索要数据的方式;
响应:需要客户端解析数据;
数据库:存储数据(一般指服务器端的数据来源);
一、网络协议
基本定义:网络协议是网络上所有设备(网络服务器、计算机及交互机、路由器、防火墙)之间通信规则的集合、
1. 模型
- OSI/RM(系统互连参考模型)是一种分层的体系结构,参考模型共有7层。
- TCP/IP(Transmission Control Protocol/Internet Protocol)作为Internet的核心协议。它是个协议族,包含多种协议。
2. 模型分层思想
- 分层的基本想法是每一层都在它的下层提供的服务基础上提供更高级的增值服务,而最高层提供能运行分布式应用程序的服务。
3. 数据在模型中的传输过程
- 发送请求的过程是从最顶层(应用层)出发,每一层负责封装属于自己的信息到请求中,最后将一整个请求发送给对方。
- 接收请求的过程是从最底层(网络接口层)开始,每一层的协议负责解析属于自己的东西,比如网际层(IP)处理ip信息,传输层(TCP)处理点对点的端口,应用层(HTTP)处理Request或Response的Line\Header\Body。
二、OSI/RM各层的作用
屏幕快照 2017-11-03 11.31.10.png下面我们来看看一些基本的概念
屏幕快照 2017-11-03 13.31.16.png1.总
- 1.每一层之间相对独立,层之间存在接口
- 2.相邻的下层只能为相邻的上层提供服务,相邻的上层只能传递命令给相邻的下层。
- 3.在两个主机通信时。只有物理层之间可以实现物理通信,其他的层次间只是逻辑通信。(上图中实线代表物理通信,虚线代表逻辑通信)
2.物理层
物理层经典设备:线缆,中继器,集线器
3.数据链路层
-
数据链路层经典设备:网卡,交换机,网桥
-
以太网主要工作在数据链路层
以太网技术标准主要解决的问题是
1.信道(介质)的访问控制方式?
屏幕快照 2017-11-03 13.46.44.png
解决办法是:
屏幕快照 2017-11-03 13.50.16.png
2.寻址?
屏幕快照 2017-11-03 13.47.51.png
解决办法:
通过Mac地址:Mac地址是一组12位的16进制数,前六位是(供应商标识,比如IBM),后六位是(供应商对网卡的唯一标识),这里的寻址代表的是物理寻址,因为Mac地址都是烧治在网卡或者交换机上的,无法通过后期设置更改,而网络层的IP寻址是属于逻辑寻址。
屏幕快照 2017-11-03 13.53.53.png
3.规范的格式?
以太网帧格式
屏幕快照 2017-11-03 13.58.57.png
4.网络层
1.定义了基于IP地址的逻辑寻址
2.路由选择(数据通过网络的最佳途径)
5.传输层
1.建立,管理,和维护端对端的连接,其实说的简单一些就是当数据传送到指定的IP地址对应的主机之后,怎样找到主机里面对应的服务。
2.这里有一个端口(port)的概念,这个TCP/IP协议中的概念,是基于TCP的系统服务,例如:常用的保留TCP端口:HTTP 80,FTP 20/21 Telnet 23 DNS 53
常用的保留UDP端口:DNS 53 TFTP 69
3.socket套接字层是传输层和会话层中间的一个层次。
6.应用层
一般情况下可以将最上面的三层用应用层来表示,提供应用程序间的交换和数据交换。常见的应有层协议有:
SMTP (simple Mail Transfer Protocol,简单邮件传输协议)
BOOTP(Boot trap.Protocol)
FTP (File Transfer Protocol,文件传输协议)
HTTP(Hypertext Transfer Protocol,超文本传输协议)
AFP (Apple Talk文件协议)--Apple公司的网络协议族,用于交换文件
SNMP (Simple Network Management Protocol)
SMB (Server Message Block Protocol)
TFTP(简单文件传输协议)
telnet
dns
三:网络寻址的过程
屏幕快照 2017-11-03 15.28.02.png1.其中Mac地址在数据链路层 ,IP在网络层,FQHN代表请求地址。
2.FQHN经过域名解析得到目标地址的IP地址,IP地址ARP(地址解析协议)解析出Mac地址,这样就完成了网络寻址的过程。
四:理解HTTP连接
1.浏览器和http请求?
答:浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示想要访问的网络资源。这里资源一般是指 HTML 文档,图片等其他的类型。资源的位置由用户使用 URL(统一资源标示符)指定。
而浏览器的核心——渲染引擎便是负责显示请求的内容。如果请求的内容是 HTML,它就负责解析 HTML 和 CSS 内容,并将解析后的内容显示在屏幕上。
工作流程:
1. 输入URL地址或者点击URL的一个链接
2. 浏览器根据URL地址,结合DNS,解析出URL对应的IP地址
1)浏览器通过发送一个TCP的包,要求服务器打开连接
2)服务器也通过发送一个包来应答客户端的浏览器,告诉浏览器可以发送数据给服务器
3)发送HTTP请求
4. 服务器接到请求后,返回相应的响应内容
5. 浏览器解析从服务器端返回的响应内容,并且把页面显现出来
当输入URL之后,浏览器就要知道这个URL对应的IP是什么,只有知道了IP地址,浏览器才能准备的把请求发送到指定的服务器的具体IP和端口号上面。然后服务器端把响应结果发送到客户端。这个响应结果就是html的文档,不包含什么图片,脚本,CSS等的,也就是页面的html结构。下一步就是浏览器解析页面的过程,也就是一步步从上到下的解析html的骨架了。如果此时在html文档中,遇到了img标签,那么浏览器就会发送HTTP请求到这个img响应的URL地址去获取图片,然后呈现出来。
注:在app项目中,发送一个请求和接受到回应的过程和这个是一样的。
2.http请求的详细过程
1、连接:当输入一个请求时,首先建立一个socket连接,因为socket是通过ip和端口建立的,所以,之前则还有一个DNS解析过程。如把www.baidu.com变成一个ip,如果url不包含端口号,则会使用该协议的默认端口号,HTTP协议的默认端口号为80。
2、请求:连接成功后,开始向web服务器发送请求,这个请求一般是GET或POST请求。
3、应答:web服务器收到这个请求,进行处理。web服务器会把文件内容传送给响应的web浏览器。 包括:HTTP头信息,体信息。
4、关闭连接:当应答结束后,web浏览器与web服务器必须断开,以保证其它web浏览器能够与web服务器建立连接。
摘自:http://www.cnblogs.com/ImBit/p/5513401.html#two.one
http://blog.csdn.net/jinzhencs/article/details/50460611
网友评论