计算机网络 :
是指将地理位置不同的具有独立功能的多台计算机及外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
网络编程的目的 :
传播交流信息,数据交换。通信
想要达到这个效果需要什么 :
1.如何准备的定位网络上的一台主机 192.168.16.124 :端口
2.找到了这个主机,如何传输数据?
javaWeb与网络编程的区别 :
javaWeb : 网页编程 B/S
网络编程 : TCP/IP C/S
网络通信的要素 :
1.网络编程中有两个主要的问题
- 如何准确的定位到网络上的一台或者多台主机
- 找到主机之后如何进行通信
2.网络编程中的要素
- IP和端口号
- 网络通信协议 UDP TCP
OSI七层模型 TCP/IP协议
3.万物皆对象
拓展 :
命令行命令 ping : 解析域名,查询ip
IP
ip地址 : InetAddress
- 唯一定位一台网络上计算机
- 127.0.0.1 本机 : localhost
- ip地址的分类
- IPV4/IPV6
- IPV4 4个字节组成 0~255 约42亿;其中30亿都在北美,亚洲4亿,2011年就已分配完 e.g. 127.0.0.1
- IPV6 128位 8个无符号整数!e.g. 2001:1863:1a58:b47c:5963:0000:d794:110b
- 公网(互联网) - 私网(局域网)
- ABCD类地址
- 192.168.xx.xx 专门给组织内部使用的
端口(port)
是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口
*虚拟端口:计算机内部或交换机路由器内的端口,不可见。
例:计算机中的80端口、21端口、23端口等。
范围 : 0~65535(2^16-1)
端口类型 :
- TCP端口 和 UDP端口 由于两个协议是独立的,因此各自的端口号也相互独立,TCP和UDP都可以拥有8080端口,两者不会产生冲突。
- 周知端口(Well Known Ports):范围从0~1023
- 众所周知的
- HTTP :80
- FTP :21
- HTTPS :443
- TELENT :23
- 程序注册端口:范围从1024~49151
- 分配给用户进程或者应用程序
- Tomcat :8080
- MySQL :3306
- Oracle :1521
- 动态端口(Dynamic Ports):范围从49152~65535
- 一般不固定分配某种服务,而是动态分配
Dos命令 :
- netstat -ano #查看所有的端口
- netstat -ano | findstr "5900" #查看指定的端口
- tasklist | findstr "5900" #查看指定端口的进程
物理端口:又称为接口,是可见端口。
例:计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11
插口也属于物理端口的范畴。
通信协议
TCP/IP协议簇 实际上是一组协议
重要 :
- TCP :用户传输协议 举例 :打电话
- 连接,稳定
- 三次握手,四次挥手
- 客服端、服务端
- 传输完成,释放连接,效率低
- UDP :用户数据报协议 举例 :发短信
- 不连接,不稳定
- 客户端、服务端 :没有明确的界限
- 不管有没有准备好,都可以发给你
出名的协议:
TCP :用户传输协议
IP :网络互联协议
HTTP报文
结构 :
报文首部:服务器端或客户端需处理的请求或响应的内容及属性
空行(CR 回车符 + LF 换行符)
报文主体:应被发送的数据
分类:
请求/响应 报文:
- 报文首部--请求行/状态行
请求首部字段/响应首部字段
通用首部字段
实体首部字段
其他
- 空行
- 报文主体
文件上传(待深入学习)
涉及到的知识点 : IO流
Tomcat
- 服务端
- 自定义 S
- Tomcat服务器 S : Java后台开发!
- 客户端
- 自定义 C
- 浏览器 B
Dos界面乱码问题解决 :
进入 Tomcat文件/conf/logging.properties配置文件
修改java.util.logging.ConsoleHandler.encoding = UTF-8
为java.util.logging.ConsoleHandler.encoding = GBK(Windows默认设置)
UDP(待深入学习)
涉及到的知识点 : 多线程
URL(统一资源定位符)
e.g. https://www.baidu.com
DNS域名解析 www.baidu.com → xxx.xxx.x.x
格式 : 协议 : // ip地址 : 端口/项目名/资源
下载网络资源格式 :
https: // meeting.tencent.com / download-win.html?from=1000&fromSource=1
RESTful API(Representational State Transfer)
定义 : 是一种软件架构风格、设计风格,可以让软件更加清晰,更简洁,更有层次,可维护性更好
API请求
CRUD
GET: 读取(Read) POST: 新建(Create) PUT: 更新(Update) PATCH: 更新(Update),通常是部分更新 DELETE:删除(Delete)过滤信息(Filtering)
?limit=10:指定返回记录的数量 ?offset=10:指定返回记录的开始位置。 ?page=2&per_page=100:指定第几页,以及每页的记录数。 ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。 ?animal_type_id=1:指定筛选条件API响应
状态码
1xx:相关信息 2xx:操作成功 GET: 200 OK POST: 201 Created 表示生成了新的资源 PUT: 200 OK PATCH: 200 OK DELETE: 204 No Content 表示资源已经不存在 206 Partial Content 表示范围请求 3xx:重定向 303 See Other 暂时重定向,表示参考另一个 URL 4xx:客户端错误 400 Bad Request:服务器不理解客户端的请求,未做任何处理。 401 Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证。 403 Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限。 404 Not Found:所请求的资源不存在,或不可用。 405 Method Not Allowed:用户已经通过身份验证, 但是所用的 HTTP 方法不在他的权限之内。 410 Gone:所请求的资源已从这个地址转移,不再可用。 415 Unsupported Media Type:客户端要求的返回格式不支持。比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式。 422 Unprocessable Entity :客户端上传的附件无法处理,导致请求失败。 429 Too Many Requests:客户端的请求次数超过限额。5xx:服务器错误 500 Internal Server Error:客户端请求有效,服务器处理时发生了意外。 503 Service Unavailable:服务器无法处理请求,一般用于网站维护状态。返回数据
- 不要返回纯文本,正确数据格式 - JSON对象
- 不要包装数据
- 发生错误时,不要返回200状态码
快捷键
Ctrl + Shift + Esc → 任务管理器
Alt + F4 → 关闭当前窗口
Ctrl + Shift + T → 恢复异常关闭的浏览器
计算机相关考试证书
软考
计算机等级考试