/* URL对象 浏览区作为客户端,每次与服务器连接时,都会给服务器发送一个消息头, 消息头主要是一些Http,版本类型,可以解析的内容,编码方式等 服务器收到了以后也会给浏览器返回一个响应头, 如果直接使用socket连接接受信息,那么这些头信息也会被显示出来, 使用URL对象可以将这些头信息解析掉,只显示数据内容,由原来的传输层到应用层
*/
import java.io.*;
import java.net.*;
class Url{
public static void main(String [] args){
URL url = new URL("http://192.168.1.118:8080/index.php?name=zhangsan");
//URL的两个作用1,解析地址,可以提取地址中的IP,端口号,path等
int port = url.getPort();
String path = url.getPath();
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文件中,可以自定义本地的映射的关系, 用途有两个:一,可以屏蔽掉了一些网站; 二,可以对一些在线检测的软件进行免费使用,不让其检测
*/