1.什么是网络?
概念:在计算机领域中网络是信息传输,接收,共享的虚拟平台,通过它把各个点,面,体的联系到一起,从而实现这些资源的共享。
作用:信息传输,资源共享
优点: 资源共享免费
2.OSI七层参考模型和TCP/IP四层参考模型
OSI七层:
应用层:文件传输,常用协议http,snmp,FTP
表示层:数据格式化,代码转换,数据加密
会话层:建立,解除会话。
传输层:提供端对端的接口。Tcp,udp
网络层:为数据包选择路由,ip,icmp
数据链路层:传输有地址的帧。
物理层:二进制的数据形式在物理媒介上传输数据。
TCP/IP四层:
应用层、传输层、IP层【网际层】、网路接口层【网络连入层】
3.计算机网络四要素
1)ip地址
- 处于网络中的通信设备(电脑、手机、电视等),都会分配一个ip地址。
- 这些设备在通信之前,首先要通过通信设备的网卡接入到网络中.
- 而这个网卡属于一个硬件,并且所有的网卡在出厂的时候,都有一个固定的网卡地址,并且这个网卡地址(MAC地址)全球唯一.
查看网卡地址(MAC地址)
1.在命令提示行窗口中输入 ipconfig /all 可以查询ip(mac地址)相关的详细信息
2.linux操作系统使用ifconfig可以查询ip(mac地址)相关的详细信息
固定的网卡地址((MAC地址))与IP地址的关系
例如: 固定的网卡地址(MAC地址):[00-0C-29-7A-CA-8E]
IP地址:[192.168.1.220]
所有的网卡都有一个唯一的物理地址,但是这个地址非常的不好记,于是给每个网卡又分了一个逻辑(IP)地址。这个逻辑地址就是ip地址。通信的过程中,就可以根据这个逻辑地址找到处于网络中的这台设备。
IP地址也是对处于网络中的某个通信终端的标识。
IP地址与域名的关系
由于IP地址也不容易记忆,,因此又给每个ip绑定了一个名称,这个名称被称为(域名)。
[00-0C-29-7A-CA-8E]----[192.168.1.220]----https://www.baidu.com/[域名]
本机默认的ip地址是127.0.0.1;它有一个对应的默认的域名localhost。
2)DNS服务器【域名解析服务器】
域名解析有2种步
第一步:本地解析:
在我们的操作系统中,有一个hosts文件,当输入域名之后,首先会在hosts文件中找有没有当前的域名对应的IP地址,有就会使用这个IP地址。“C:\Windows\System32\drivers\etc\hosts”
第二步:DNS服务器解析
如果第一步解析失败了,会到网络中的DNS服务器上进行解析。DNS服务器中会将全球所有的域名和IP设置在其中。如果DNS服务器解析失败,说明当前的域名有问题的。
3)协议
协议:通过双方通信的时候需要遵守的通讯规则
高级协议:应用协议:http、ftp、https等
底层协议:UDP、TCP
4)端口
我们可以通过ip找到网络中具体那个通讯终端设备。而具体需要访问这个设备中那个资源(软件)信息,这时由于设备中运行确定资源,这个时候必须有唯一的编号(标识),通过这个标识我们可以准确访问到ip地址具体的资源
端口: 是一台设备(电脑、手机、等)上某个应用程序的唯一标识。设备中运行的任何一个软件,只要启动,就肯定会有一个唯一的编号与整个软件绑定。
端口的范围0~65535之间。0~1024之间的数字已经给操作系统的应用程序所占用,这是后期需要的程序必须大于1024。
4.InetAdress类
Java.net包类InetAddress此类表示换联网协议(IP)地址
public class InetAddress implements java.io.Serializable
InetAddress类的构造方法:
缺省修饰符 InetAdderss(){}
我们在自己的java程序中不能通过new+构造方法创建InetAdreass来创建对象。
我们就需要使用下面两个静态方法得到InetAddress类对象
static InetAdress getLocalHost()返回包含主机IP地址的InetAddress对象。
static InetAdress getByName(String host)根据域名得到包含该域名对应的ip地址的InetAdress对象。
实例方法:
String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。
String getHostName() 获取此 IP 地址的主机名。
例子:
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressTest {
public static void main(String[] args) throws UnknownHostException {
// 获取本地ip
InetAddress lochost = InetAddress.getLocalHost();
String ipstr = lochost.getHostAddress();
String ipname = lochost.getHostName();
System.out.println("ip地址:" + ipstr);
System.out.println("ip名字:" + ipname );
//通过域名获取网络ip
String host = "www.people.com.cn";
InetAddress addobj = InetAddress.getByName(host);
String ip = addobj.getHostAddress();
String hostname = addobj.getHostName();
System.out.println("服务器ip:" + ip);
System.out.println("服务器域名:"+ hostname);
}
}
5.URL与RUI的区别?
1)URI: 统一资源标识符
表示的是web上每一种可用的资源。
URI通常有三部分组成:
(1)资源的命名机制
(2)存放资源的主机名
(3)资源自身的名称
2)URL是URI的一个子集。统一资源定位符。
采用URL可以用一种传统的格式来面试各种信息资源,包括文件服务器地址和目录登。
URL是URI概念的一种实现。
URL通常由三部分组成:
- 第一部分是协议(服务方式)
- 第二部分是村友该资源的主机IP地址(有事包括端口号)
- 第三部分是主机资源的具体地址,如目录文件名等等。
每个部分的分割符
第一部分和第二部分用“://”符号隔开,
第二部分和第三部分用“/”符号隔开。
第一部分和第二部分是不可缺少的,第三部分有时可以省略。
例如:https://www.baidu.com/index.html---资源访问地址
从上面的例子来看,你可能觉得URI和URL可能是相同的概念,其实并不是,URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。
6.Java中的URL类
URL类的构造方法
URL(String spec) 从 String表示形成一个 URL对象。
URL(String protocol, String host, int port, String file)创建 URL从指定对象 protocol,host,port数,和file 。
实例方法
URLConnection openConnection() 返回一个URLConnection实例,表示与URL引用的远程对象的URL 。
InputStream openStream() 打开与此 URL ,并返回InputStream ,以便从该连接读取。
例子:
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
public class URLTest {
public static void main(String[] args) throws IOException {
// 完成网络图片的下载
//1.创建URL网络地址
String str = "https://m.360buyimg.com/babel/jfs/t1/202344/11/17211/252669/61a48dbbE5213a48c/b58a51d5874f77cf.jpg.webp";
URL imgurl = new URL(str);
InputStream in = imgurl.openStream();
byte readdata[] = new byte [1024];
int temp = 0;
//创建内存输出流对象
ByteArrayOutputStream outnc = new ByteArrayOutputStream();
//读取数据
while ((temp = in.read(readdata))!=-1) {
outnc.write(readdata, 0, temp);
}
//创建本地文件
File localfile = new File("G:"+File.separator +"lj" + File.separator +"tu1.webp" );
OutputStream out = new FileOutputStream(localfile);
out.write(outnc.toByteArray());
out.close();
outnc.close();
in.close();
}
}
无奈源于不够强大