黑马程序员——网络二

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

服务端多线程的问题:如何定义多线程?
只要明确客户端在服务端执行的代码即可,将代码放到run中。浏览器发送给服务器(我自己定义的day2404)的东西。
       http://192.168.0.145:8080/myweb/demo.html
       协议   主机名       端口号 资源路径  资源    
       GET / HTTP/1.1 (1.1和1.0版本):Get:Httpd请求消息头
       Accept: text/html, application/xhtml+xml,
       Accept-Language: zh-CN
       User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MALNJS)
       Accept-Encoding: gzip, deflate//新浪将数据压缩后,发送给tomcat,然后再解压缩
       Host: 192.168.0.145:10012//要访问的主机和端口
       DNT: 1
       Connection: Keep-Alive
自定义浏览器(TCP客户端),访问tomcat。浏览器发送一大堆东西(响应头消息和数据主体,三次握手)给服务端,服务端会返回给浏览器数据(应答消息头和数据主体),浏览器会解析客户端放松是数据(浏览器在应用层,会将消息头解析掉,只显示用户可以看的信息)。
       客户端浏览器发送消息头给服务器,服务器也要给浏览器发送消息。
       http://192.168.0.145:8080/myweb/demo.html
   协议   主机名       端口号 资源路径  资源    
       GET / HTTP/1.1 (1.1和1.0版本):Get:请求头
       Accept: text/html, application/xhtml+xml,
       Accept-Language: zh-CN
       User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6
       .0; MALNJS)
       Accept-Encoding: gzip, deflate//新浪将数据压缩后,发送给tomcat,然后再解压缩
       Host: 192.168.0.145:10012//要访问的主机和端口
       DNT: 1
       Connection: Keep-Alive
 URL 类 URL 代表一个统一资源定位符, 是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
通俗将: Internet文件在网上的地址, 基本URL包含模式(或称协议)、服务器名称(或IP地址)。
该类有什么用:
1.不用再切割字符串来获取信息了。
2.openConnection()方法返回URLConnection对象,它封装了Socket,所以可以当做Socket使用。URLConnection内部封装了地址和目的,在内部封装了连接动作,就不用写Socket了,并且带了协议。在应用层。
URL u = new URL("http://www.baidu.com/");
              URLConnection uc = u.openConnection();
                     System.out.println(uc);.
              InputStream in = uc.getInputStream();
              byte[] buf = new byte[1024];
              int len=-1;
              while((len=in.read(buf))!=-1){
                     System.out.println(new String(buf,0,len));//没有响应头,在应用层被拆包解析了
              }
        * 封装了截取字符串的方法。
        *构造方法:
        *1.URL(String spec)
        *2.URL(String protocol, String host, int port, String file)
        *常用方法:
        *getFile()
        *getHost()
        *getPath()
        *getPort():没有指定端口,返回-1
        *getProtocol()
        *getQuery():getFile()后面的参数  用的频率很高 使用参数的形式想服务端发送数据。
        *URLConnection openConnection() 获取远程对象的连接。例如获取百度的连接
        *URLConnection内部封装了地址和目的,在内部封装了连接动作,就不用写Socket了,并且带了协议。在应用层。       *
        *getInputStream():有此方法,也说明了内部封装了Socket.在应用层,它会它响应头给解析了,值保留信息正文主体。       *
        *RUL有一个方法:openInputStream()
        *其实:就是openConnection.getInputStream();先连接
/*必须掌握   
URLConnection openConnection()//调用此方法,
        返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
              每次调用此 URL 的协议处理程序的 openConnection 方法都打开一个新的连接。

抽象类URLConnection:它代表应用程序和 URL 之间的通信链接


方法: InputStream getInputStream()
        返回从此打开的连接读取的输入流。
OutputStream getOutputStream()//内部封装了Socket
        返回写入到此连接的输出流。
URL类中的方法: InputStream openStream() 封装了:openConnection().getInputStream(),但是没有URLConnection里面的方法灵活。因为它可以进行更对操作,解析头等。 打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。


http:应用层。
       浏览器(客户端)给tomcat(服务端)发送请求(GET/myweb/demo.html http/1.1),请求访问demo.html, tomcat返回给浏览器(应答信息和demo.html),浏览器在传输层(所有数据都展示)收到数据,并向上传递给应用层(展示数据主体)。应用层的把HTTP协议识别的数据给拆包去掉了,  把数据主体(dmeo.html)返回了。
抽象类 URLConnection 是所有类的超类,它代表应用程序和 URL 之间的通信链接。
       此类的实例可用于读取和写入此 URL 引用的资源。

       对影响到远程资源连接的参数进行操作。 与资源交互;查询头字段和内容。


小知识点:
       当定义的Socket()没有参数时,用connect连接上。
       Socket:connect(SocketAddress endpoint)  将此套接字连接到服务器。
       SocketAddress抽象类,其子类 InetSocketAddress,此类实现 IP 套接字地址(IP 地址 + 端口号)。
       主要用于:习惯于将地址和端口一起用时,方便。
       ServerSocket :ServerSocket(int port, int backlog)
        backlog:就是允许链接的最大端口个数,比如一次只允许10个。
       域名解析:

       http://192.168.0.145:8080/myweb/demo.html?name=haha&age=30";

       http:www.sina.com.cn,那么这个是怎么访问的。sina与192.45.15.54是怎么对应的呢

       先找DNS服务器,获取ip地址,然后再用ip地址访问新浪,如果没有设置则默认运行商的dns服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值