• Https 与http


    HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer)

    HTTPS和HTTP的区别

     一、https协议需要到ca申请证书,一般免费证书很少,需要交费。  

     二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。   

        三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。   

        四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:

    SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

    SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

    android中 HTTPS 应用:

    1、
    KeyStore keyStore = ...;
       TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
       tmf.init(keyStore);
    
       SSLContext context = SSLContext.getInstance("TLS");
       context.init(null, tmf.getTrustManagers(), null);
    
       URL url = new URL("https://www.example.com/");
       HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
       urlConnection.setSSLSocketFactory(context.getSocketFactory());
       InputStream in = urlConnection.getInputStream();
     
    
    2、
    KeyStore keyStore = ...;
       KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509");
       kmf.init(keyStore);
    
       SSLContext context = SSLContext.getInstance("TLS");
       context.init(kmf.getKeyManagers(), null, null);
    
       URL url = new URL("https://www.example.com/");
       HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
       urlConnection.setSSLSocketFactory(context.getSocketFactory());
       InputStream in = urlConnection.getInputStream();
     

    android中代理的使用:

    主要有两个类 java.net.Proxy 与 android.net.Proxy,其中android.net.Proxy提供默认的代理主机和端口,java.net.proxy 封装 传递给 url.openConnection(Proxy)方法 建立链接。

        java.net.Proxy p = new java.net.Proxy(java.net.Proxy.Type.HTTP, new InetSocketAddress(android.net.Proxy.getDefaultHost(), android.net.Proxy.getDefaultPort()));
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection(p);
  • 相关阅读:
    笔记12:maven项目管理工具
    笔记11:Oracle基础
    笔记10:springMVC
    笔记9:spring
    笔记8:mybatis
    Bad Sequence
    Optimal Currency Exchange
    Two Small Strings
    Equalizing by Division (easy version)&&(hard version)
    Codeforce 1096:D. Easy Problem(DP,思维)
  • 原文地址:https://www.cnblogs.com/lipeil/p/2647156.html
Copyright © 2020-2023  润新知