---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
摘要(浏览器客户端介绍----消息头---URL(统一资源定位符)(应用层)----域名解析)
浏览器客户端--其实跟自定义的Socket一样
但浏览器客户端功能更强大(内部封装了很多解析数据库)
浏览器请求消息头:
|--GET:(1部分)一种请求方式,(2部分)求取这个目录下的html资源(3部分)遵守的协议名称
|--Accept:可接受什么类型数据
|--Accept-Language:支持的语言
|--Accept-Encoding:支持的封装形式(即压缩包类型,将数据压缩传输,节省资源,提高传输速度)
|--User-Agent:用户的一个信息
|--Host:请求访问的主机IP和浏览器端口
|--Connection:连接状态
如图:
Tomcat服务器应答消息头:
|--Http/1 200 ok:(1部分)支持http/1(2部分)响应状态吗-->200为成功 (3部分)<---成功的意思
|--Server:服务器类型
|--Etag:一个标记
|--Last-Modified:何时被修改的
|--Content-type:发送的是什么类型数据
|--content-length:数据大小(字节)
|--Date:(何时发的)
|--Connection:连接状态
如图:
URl--URLConnection统一资源定位符(应用层)
例:
URL url= new URL("htt://192.168.1.254:8080/myweb/Demo.txt");//建URL对象,将指定主机,端口,和具体访问文件,封装成URL对象
URLConnection conn = url.openConnection();//获取服务端对象
InputStream in = conn.getInputStream();//获取服务端网络读取流
byte[] buf = new byte[1024];
int len =in.read(buf);//将网络输入流的数据存入数组,并记录长度
System.out.println(buf,0,len);
知识点::
|--InetAddress和SocketAddress区别:
|--InetAddress 只封装IP
|--SocketAddress 封装IP和端口
|--ServerSocket(int port, int backlog)-->backlog(最大连接数,初始化时可直接设置)
域名解析:(如访问:百度)
|--先在本机host文件中找,看有没有匹配的IP
本机默认回环地址IP:127.0.0.1
|--若没有,就向网络上的DNS服务器发送信息,然后DNS服务器
把匹配的IP发回本机
|--本机再根据发回的IP,访问百度网站
HOST文件设置用途:
|--本机houst文件中,设置IP,可省去访问DNS服务器的时间,提高了速度
获取IP方法:InetAddress.getByName("www.sina.con.cn");
|--有些软件要网上验证,将其在HOST中的IP改为本机回环地址,则可实现不验证
达到免费使用软件的目的
|--屏蔽一些恶意或垃圾网站,做吧同上(IP设成本机回环)
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------