zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    30 Day Challenge Day 11 | Leetcode 55. Jump Game
    30 Day Challenge Day 11 | Leetcode 11. Container With Most Water
    30 Day Challenge Day 10 | Leetcode 701. Insert into a Binary Search Tree
    30 Day Challenge Day 10 | Leetcode 1. Two Sum
    30 Day Challenge Day 10 | Leetcode 3. Longest Substring Without Repeating Characters
    30 Day Challenge Day 9 | Leetcode 425. Word Squares
    30 Day Challenge Day 8 | Leetcode 200. Number of Islands
    30 Day Challenge Day 7 | Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
    30 Day Challenge Day 7 | Hackerrank: Tree: Huffman Decoding
    30 Day Challenge Day 6 | Leetcode 92. Reverse Linked List II
  • 原文地址:https://www.cnblogs.com/lipeil/p/2647156.html
Copyright © 2011-2022 走看看