【JAVA SE基础篇】64.端口、URL、爬虫原理、传输协议
1.端口
IP地址用来标识一台计算机,但是一台计算机上可能提供多种网络应用程序,端口就用来区分这些程序。
端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。
端口的表示是一个16位的二进制数,2个字节,对应十进制的0-65535
公认端口:0-1023 例:80端口分配给www,21端口分配给FTP
注册端口:1024-49151 分配给用户进程或应用程序
动态/私有端口:49152-65535
dos命令下:
查询所有端口:nestat-ano
查询指定端口:nestat-ano|findstr"808"
查询指定进程:tasklist|findstr"808"
查询具体程序:使用任务管理器看PID
InetScoketAddress
包含端口,用于socket通信的
端口
1、区分软件
2、2个字节 0-65535 UDP TCP
3、同一个协议端口不能冲突
4、定义端口越大越好
InetSocketAddress
1、构造器
new InetSocketAddress(地址|域名,端口);
2、方法
getAddress()
getPort()
getHostName()
例:
2.URL
URI:统一资源标识符,用来标识抽象的或物理资源的一个紧凑字符串
URL:统一资源定位符,一种定位资源的主要访问机制的字符串
URN:统一资源名称,通过特定的命名空间中的唯一名称或ID来标识资源
在www上,每个信息资源都有统一且唯一的地址,即统一资源定位符(URL)
如:http://www.google.com:80/index.html
由四部分组成:
1.协议:http://
2.存放资源的主机域名:www.google.com
3.端口号:80
4.资源文件名:index.html
例:
3.爬虫原理
1.获取url
2.下载资源
3.分析资源(正则表达式)
4.数据抽取,清洗
5.数据存储
例:
4.传输协议
1.TCP传输协议:一种面向连接的,可靠的,基于字节流的运输层通信协议。
特点:
1.面向连接
2.点到点的通信,高可靠性
3.占用系统资源多、效率低(三次握手:点名,答道,确认)
2.UDP传输协议:一种无连接的传输协议,提供面向事务的简单不可靠传送服务
特点:
1.非面向连接,传输不可靠,可能丢失
2.发送不管对方是否准备好,接收方收到也不确认
3.可以广播发送
4.非常简单的协议,开销小
3.套接字Socket
开发的网络应用位于应用层,TCP/UDP属于传输层协议
应用层和传输层使用套接字来进行分离
4.Socket编程
基于TCP协议的Socket编程:通信双发需要建立连接,连接建立时双方存在主次之分
基于UDP协议的Scoket编程:通信双发不需要建立连接,通信双发完全平等