网络知识你真的了解吗-[Android_YangKe]

Android_YangKe.jpg

目录

  • 网络模型
  • 常用协议
网络模型

首先我们看一下网络模型的划分。按照模糊的划分,网络可以分为五层模型,分别为:应用层、传输层、网络层、链路层、物理层。正由于这些服务才构建了整个网络的互联互通。

那么各层是如何工作的呢?首先我们看一下应用层,程序在发送数据时,应用层按照给定的协议打包数据,随后由传输层加上双方端口号,网络层加上双方IP地址,链路层加上双方MAC地址,并且将数据拆分成数据帧,经过多个路由器和网关后到达目的机器。简而言之就是根据:端口号+IP+MAC地址进行数据组包和发送。

知道了网络模型,下面我们看一个完整的 URL:[schema://][host][:port][/path][?query-string][anchor]可以看出整体分为了六部分,分别为:

  • scheme:指定底层使用的协议(例如:http, https, ftp 等)

  • host:服务器的 IP 地址或者域名

  • port:服务器端口号,http 默认为80, https 为443。如果使用了别的端口,必须指明,例如 :http://xxx.com:8080

  • path:访问资源的路径

  • query-string:发送给http服务器的数据

  • anchor:锚

URL 的一个例子

http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff

Schema:http
host:www.mywebsite.com
path:/sj/test/test.aspx
Query String:name=sviergn&x=true
Anchor:stuff
请求头中包含的信息
  • Accept

标识浏览器端可以接受的数据类型,例如:Accept: text/html代表浏览器可以接受服务器回发的类型为text/html也就是我们常说的 html 文档,如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误non acceptable

  • Accept-Encoding:

标识浏览器声明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)。
例如: Accept-Encoding: zh-CN,zh;q=0.8。

  • Accept-Language

标识浏览器声明自己接收的语言。 语言跟字符集的区别:中文是语言,中文有多种字符集,比如 big5,gb2312,gbk 等等。例如: Accept-Language: en-us。

  • User-Agent

告诉服务器, 客户端使用的操作系统和浏览器的名称和版本。

我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上,服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。
例如: User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; InfoPath.2; .NET4.0E)

  • Cookie

Cookie 是用来存储一些用户信息以便让服务器辨别用户身份的(大多数需要登录的网站上面会比较常见),比如 cookie 会存储一些用户的用户名和密码,当用户登录后就会在客户端产生一个 cookie 来存储相关信息,这样浏览器通过读取 cookie 的信息去服务器上验证并通过后会判定你是合法用户,从而允许查看相应网页。当然 cookie 里面的数据不仅仅是上述范围,还有很多信息可以存储是 cookie 里面,比如 sessionid 等。

常用协议
  • TCP
  • HTTP/HTTPS
  • IP
  • UDP
  • FTP
  • SMTP
TCP

Transmission Control Protocol 是一种面向连接的、可靠的、基于字节流的传输层通信协议,它约定传输信息在网络中如何分层,分组,在线路上传输。

HTTP/HTTPS

超文本传输控制协议,两者都是基于 TCP 的实现,可以保证数据的完整性,一般应用在对数据完整性要求较高的场景下,客户端与服务端不是基于长连接的实现所以连接是无状态的,常用的操作有 GET、POST、DELETE、PUT 等。

HTTP 默认端口为 80,信息是明文传输的,没有进行过加密,有被中间者截包修改数据的风险,安全性较低。HTTPS 反之,是 HTTP 的升级版,主要体现在安全性上。HTTPS 首先是修改了协议端口,更换了传输通道,其次在 HTTP 的基础上引入了 SSL 技术来保证数据安全,HTTPS 安全主要体现在会对传输内容进行加密,信息完整性验证、身份验证、证书验证等一系列操作。隶属于网络层。https 是如何保证的传输安全的详解。

IP

Internet Protocol 简称为 IP,又译为网际协议或互联网协议,是用在TCP/IP协议簇中的网络层协议。是一个无连接的、不可靠的、点对点的协议,只能尽力传送数据,不能保证数据的到达。

UDP

User Datagram Protocol 的简称, 中文名是用户数据报协议。是一种无连接的传输层协议
,正由于此,此协议的传输效率相对较高,常见的使用场景:语音聊天,视频聊天。与 TCP 反之。

FTP

File Transfer Protocol,文件传输协议。此协议分为两个端,一个为服务端,一个为客户端。其中服务端用来存储文件,用户可以使用 FTP 客户端下载文件。FTP 的传输效率特别高,一般传输大文件时使用此协议。

SMTP

Simple Mail Transfer Protocol 简单的邮件传输协议。是一种提供可靠且有效的电子邮件传输的协议。SMTP 是建立在 FTP 文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。

完~

喜欢有帮助的话: 双击、评论、转发,动一动你的小手让更多的人知道!关注 Android_YangKe

你可能感兴趣的:(网络知识你真的了解吗-[Android_YangKe])