一、基本概念
- JavaSE与JavaEE的理解:
java桌面程序、控制台控制、gui界面等,均属于javase范畴。
javaweb程序,浏览器控制,javaee范畴。 - 软件的结构:
- C/S (Client - Server 客户端-服务器端)
典型应用:QQ软件 ,飞秋。
特点:- 必须下载特定的客户端程序。
- 服务器端升级,客户端升级。
- 安全性强。
- 服务器压力小。
- B/S (Broswer -Server 浏览器端- 服务器端)
典型应用: 腾讯官方、百度一下(俗称:网站)
特点:- 不需要安装特定的客户端(只需要安装浏览器即可!!)
- 服务器端升级,浏览器不需要升级。
- 安全性弱,容易被抓包。
- 服务器压力大,网页的每一次请求都会提交到服务器。
- C/S (Client - Server 客户端-服务器端)
- 服务器(共享本地数据给外部访问):
从物理上来说,服务器就是一台PC机器。8核,8G以上,T来计算,带宽(网络的传输速率,总线和内存性能的指标)100M。- web服务器:PC机器安装一个具有web服务的软件,称之为web服务器
- 数据库服务器:PC机器安装一个具有数据管理件服务的软件,称之为数据库服务器。
- 邮件服务器:PC机器安装一个具有发送邮件服务的软件,称之为邮件服务器。
- web服务软件:
web服务软件的作用:把本地的资源共享给外部访问。 - 常见的市面上web服务软件:
WebLogic: BEA公司的产品。 收费的。支持JavaEE规范。
WebSphere: IBM公司的产品。收费的。支持JavaEE规范
JBoss: Redhat公司的产品。收费的。支持JavaEE规范
Tomcat: 开源组织Apache的产品。免费的。支持部分的JavaEE规范。(支持servlet、jsp、jdbc,但ejb、rmi不支持) - 单线程web服务器底层代码实现:
public class Server{ public static void main(String[] args) throws Exception{ //1.创建ServerSocket ServerSocket server = new ServerSocket(8080); System.out.println("服务器已经成功启动。。。"); while(true){ //2.接受客户端的连接 Socket socket=server.accept(); //3.读取本地的index.html文件 FileInputStream in=new FileInputStream(new File("D:/web/index.html")); //4.构建数据输出通道 OutputStream out = socket.getOutputStream(); //5.发送数据 byte[] buf = new byte[1024]; int len=0; while((len = in.read(buf)) != -1){ out,write(buf,0,len); } //6.关闭资源 out.close(); in.close(); } } }
二、URL&DNS
- URL
URL全名叫统一资源定位符,用于定位互联网的资源,就是一个路径。 - DNS解析域名过程
使用域名转换成IP地址,先读取本地HOST文件,本地文件没有从当前电信网管获取对应IP。
本地host文件 C:\Windows\System32\drivers\etc。
三、内网与外网
- 内网与外网的区别?
外网、内网是两种Internet的接入方式。
内网通俗的说就是局域网LAN网,外网通俗的说就是与因特网相通的WAN广域网或 MAN 城域网路。内网和外网是相对而言的。一般外网的范围比内网大,也可以说内网是外网的子网。
外网(广域网)上的每一台电脑(或其他网络设备)都有一个或多个广域网IP地址(或者说公网、外网IP地址),广域网IP地址不能重复;局域网(LAN)上的每一台电脑(或其他网络设备)都有一个或多个局域网IP地址(或者说私网、内网IP地址),局域网IP地址是局域网内部分配的,不同局域网的IP地址可以重复,不会相互影响。
内网IPV4一般是以10.、172.16、172.31、和192.168开头的,除了列举的还有127.0.0.1之外,剩下的基本为外网的IPV4。 - 内网穿透:
在做一些支付项目、微信开发、或对接第三方接口的时候,有些回调操作,可能会需要外网访问。
此时就要用到外网映射工具,常用外网映射工具ngrok、natapp等。