URL类
URL url = new URL(http://127.0.0.1:8080/myweb/demo.html?name=df,age=30); throws MalformedURLException
这样可以通过其方法获得我们想要的信息
String getFile() 获取此 URL 的文件名。 /myweb/demo.html?name=df,age=30
String getHost() 获取此 URL 的主机名(如果适用)。 127.0.0.1
String getPath() 获取此 URL 的路径部分。 /myweb/demo.html
int getPort() 获取此 URL 的端口号。 8080
当端口号没有时,返回的值是-1 ; 所以要设定默认的端口号
String getProtocol() 获取此 URL 的协议名称。http
String getQuery() 获取此 URL 的查询部 就是文件后跟的信息 name=df,age=30
URLConnection 类
URLConnection con = url.openConnection //通过这个方法就可以连接地址的主机,获得连接对象
URLConnection是抽象类 调用openConnection方法获得连接地址对象,该对象内部封装了Socket,而且根据地址选择合适的协议。
这样可以通过该对象的方法获得已经http协议处理过的数据等信息。客户端向服务端发送请求该类也根据地址信息将数据发到服务端(相当于数据请求),当服务端发来数据经过对象的协议处理得到正文数据(就是协议去除服务端反馈的数据描述,数据包头)
URLConnection类中的方法
InputStream getInputStream() 通过该方法可以获取服务端发来的数据,其实该流就是对象内部的Socket流
在URL类中有InputStream openStream()方法也是获取流,其实内部是openConnection().getInputStream()也就是URLConnection的方法
ServerSocket(int port ); port 是服务端口号
ServerSocket(int port , int backlog); backlog 是可同时连接的最大数
域名解析
先连接DNS服务器进行域名解析,获得ip地址,然后通过ip地址 端口连接服务器
http://localhost :8080 本机怎么解析的?
其实映射关系就在本机C:\Windows\System32\drivers\etc\hosts
在进行域名解析时,先从本机查找映射是否存在
这样就可以设置一些映射从本机开始查找速度快
也可以将一些恶意的屏蔽掉\(^o^)/~