/* URL对象 浏览区做为客户端,每次与服务器链接时,都会给服务器发送一个消息头, 消息头主要是一些Http,版本类型,能够解析的内容,编码方式等 服务器收到了之后也会给浏览器返回一个响应头, 若是直接使用socket链接接受信息,那么这些头信息也会被显示出来, 使用URL对象能够将这些头信息解析掉,只显示数据内容,由原来的传输层到应用层php
*/java
import java.io.*;windows
import java.net.*;浏览器
class Url{ 服务器
public static void main(String [] args){ socket
URL url = new URL("http://192.168.1.118:8080/index.php?name=zhangsan"); post
//URL的两个做用1,解析地址,能够提取地址中的IP,端口号,path等 网站
int port = url.getPort(); 编码
String path = url.getPath(); url
String host = url.getHost();
String file = url.getFile();
String http = url.getProtocol();
//2.远程链接服务器,获取信息;
URLConnection urlConnection = url.openConnection();
BufferedInputStream bufferedInputStream = new BufferedInputStream(urlConnection.getInputStream());
byte [] buf = new byte[1024];
int len = bufferedInputStream.read(buf);
System.out.println(new String(buf,0,len));
} }
/* 域名解析
1,在浏览器中输入网址之后,他首先会在本地进行解析,寻找网址与IP地址的映射关系,例如127.0.0.1 localhost
2,若是本地没有找到,而后到公网上进行DNS服务器解析,(在咱们配置IP的时候, 下面能够选择使用哪一个DNS服务器解析),而后返回IP地址,浏览器再进行socket远程链接 ,若是咱们直接输入IP地址,这样就不会解析了,直接远程链接
3,在c:\windows\system32\drivers\etc\hosts文件中,能够自定义本地的映射的关系, 用途有两个:一,能够屏蔽掉了一些网站; 二,能够对一些在线检测的软件进行无偿使用,不让其检测
*/