网络编程与http协议初识

138 阅读3分钟

IP地址

IP是互联网上的每一台计算机都有得一个唯一表示自己的标记

分类:

  1. IPv4:32位,分4段,(每段的范围0-255)0-255之间的十进制表示。如:192.168.1.1(这4段组成的个数有限度,不够用,出现Ipv6)
  2. IPv6:128位,分8段,0000~FFFF的十六进制数值,冒号分割,如:1080:0:0:0:8:800:200C:417A

Java对基本网络的支持

1.InetAddress类要来表示IP地址,有两个子类

  • Inet4Address(IPv4)
  • Inet6Address(IPv6)

2.常用方法(主要了解获得IP地址对象的方法)

  • static InetAddress getLocalHost() 返回本地主机
  • static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址,查找局部网内部存在的一个IP地址,如果没有知道到跑出异常
  • static InetAddress getByAddress(byte[] addr) 根据一个ip地址获得一个IP地址对象,没有进行查找的
  • boolean isReachable(int timeout) 测试是否可以达到该地址(类似ping)

示例:

public class Demo1 {
    public static void main(String[] args) throws IOException {
        //获取本机ip
        InetAddress ip1 = InetAddress.getLocalHost();
        System.out.println(ip1);
        //通过ip名获取ip
        InetAddress ip2 = InetAddress.getByName("localhost");
        System.out.println(ip2);
        //通过byte数组获取ip
        InetAddress ip3 = InetAddress.getByAddress(new byte[]{(byte) 10, (byte) 185, (byte) 127, (byte) 22});
        System.out.println(ip3);
        //测试是否可以到达该地址
        System.out.println(ip1.isReachable(5000));
    }
}

结果:

image.png


端口

什么是端口?

如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口,可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。

简单的说:一个电脑上的应用程序都绑定了一个对应的编号(端口),通过IP可以定位到指定的主机(电脑),再加上端口就可以定位到指定的程序了。

注意: 同一台机器上不能有两个程序使用同一个端口,会冲突。


URL(统一资源定位符)

URL(Uniform Resource Locator)统一资源定位符,可以直接使用此类找到互联网上的资源如一个简单的网页。 一般由:协议名,资源所在主机,端口,资源名等部分组成;如:baidu.com:80/class_info/…

URLEncoder与URLDecoder

字符串编码与解码

public class Demo1 {
    public static void main(String[] args) throws IOException {
        //编码
        String encode = URLEncoder.encode("天天进步!","utf-8");
        System.out.println(encode);
        //解码
        String decode = URLDecoder.decode(encode,"utf-8");
        System.out.println(decode);
    }
}

结果:

image.png

TCP与UDP的区别

  1. 基于连接与无连接 ;
  2. 对系统资源的要求(TCP较多,UDP少) ;
  3. UDP程序结构较简单 ;
  4. 流模式与数据报模式 ;
  5. TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证;

TCP协议:

  • 基于链接
  • 安全可靠
  • 字节流
  • 慢点 UDP协议
  • 报文
  • 不连接
  • 不安全
  • 速度快

http协议

  1. Request请求对象【一问】
    • 请求头信息
  2. Response相应对象【一答】
    • 响应头的信息