前言
基础知识
1,OSI分层模型和TCP/IP分层模型的对应关系
2,TCP与UDP
1、TCP是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。它能够提供两台计算机之间的可靠的数据流,HTTP、FTP、Telnet等应 用都需要这种可靠的通信通道。
2、UDP是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传送目的地,至于能够达到目的地,达到目的地的时 间以及内容的正确性都是不能保证的。
既然有了保证可靠传输的TCP协议,为什么还要非可靠传输的UDP协议呢?原因有两个:
1、可靠的传输是要付出代价的,对数据内容的正确性的检验必然会占用计算机处理时间和网络带宽。因此TCP的传输效率不如UDP高。
2、许多应用中并不需要保证严格的传输可靠性,比如视频会议系统,并不要求视频音频数据绝对正确,只要能够连贯就可以了。所以在这些场景下,使用UDP更合适些。
3,IP地址与端口号
1、ip地址用于唯一标示网络中的一个通信实体,这个通信实体可以是一台主机,可以是一台打印机,或者是路由器的某一个端口。而在基于IP协议网络中传输的数据包,必须使用IP 地址来进行标示。ip地址就像写一封信,必须指定收件人的地址一样。每个被传输的数据包中都包括了一个源IP和目标IP。
2、ip地址唯一标示了通信实体,但是一个通信实体可以有多个通信程序同时提供网络服务。这个时候就要通过端口来区分开具体的通信程序。一个通信实体上不能有两个通信程序 使用同一个端口号。
IP地址和端口号,就像一个出差去外地入住酒店一样,IP地址表示了酒店在具体位置,而端口号则表示了这个人在酒店的房间号。
4,URL(统一资源定位符)
它是用协议名、主机、端口和资源组成,即满足如下格式:
protocol://host:port/resourceName
http://www.crazyit.org/index.php
try { URL url = new URL("https://www.cnblogs.com/dongguacai/p/5747397.html"); Log.i("getAuthority", url.getAuthority()); Log.i("getFile", url.getFile()); Log.i("getHost", url.getHost()); // Log.i("getRef", url.getRef()); Log.i("getPath", url.getPath()); Log.i("getProtocol", url.getProtocol()); // Log.i("getQuery", url.getQuery()); // Log.i("getUserInfo", url.getUserInfo()); Log.i("getDefaultPort", String.valueOf(url.getDefaultPort())); } catch (MalformedURLException e) { e.printStackTrace(); }
openStream()是URL最常用的方法
/** * @param path 网址 * @param localPath 本地路径 */ private void writeFileByUrlConneciton(String path, String localPath) { try { URL url = new URL(path); URLConnection urlConnection = url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); OutputStream outputStream = new FileOutputStream(localPath); byte[] bytes = new byte[1024]; int index = 0; while ((index = inputStream.read(bytes)) != -1) { outputStream.write(bytes, 0, index); } outputStream.close(); inputStream.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
参考文章:https://www.cnblogs.com/dongguacai/p/5747397.html
5 http与https
定义 | 优点 | 缺点 | 端口 | ||
http | 超文本传输协议 明文传输 | 传输速度相对快,效率高,不需要费用 | 安全性低,容易被攻击 | 80 | |
https |
带有安全套接字层的超文本传输协议,加入了ssl协议
通过证书验证服务器身份,为浏览器和服务器之间通
信加密 密文传输
|
ssl+http加密传输、身份认证的网络协议,
安全行更高,不易被攻击
|
需要支付一定的费用,通常一个域名绑定
一个IP,IPv4资源有限
| 443 |