⑴ android https和http有什么区别
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议
它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。
它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
HTTPS和HTTP的区别:
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全
HTTPS解决的问题:
1 . 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 改证书只有用于对应的server 的时候,客户度才信任次主机. 所以目前所有的银行系统网站,关键部分应用都是https 的. 客户通过信任该证书,从而信任了该主机. 其实这样做效率很低,但是银行更侧重安全. 这一点对我们没有任何意义,我们的server ,采用的证书不管自己issue 还是从公众的地方issue, 客户端都是自己人,所以我们也就肯定信任该server.
2 . 通讯过程中的数据的泄密和被窜改
1. 一般意义上的https, 就是 server 有一个证书.
a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.
b) 服务端和客户端之间的所有通讯,都是加密的.
i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.
ii. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了.
2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书.
a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份. 应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.
b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体.
HTTPS 一定是繁琐的.
a) 本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7 个往返.
i. 任何应用中,过多的round trip 肯定影响性能.
b) 接下来才是具体的http协议,每一次响应或者请求, 都要求客户端和服务端对会话的内容做加密/解密.
i. 尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU,为此有专门的SSL 芯片. 如果CPU 信能比较低的话,肯定会降低性能,从而不能serve 更多的请求.
ii. 加密后数据量的影响. 所以,才会出现那么多的安全认证提示
⑵ 小米用刷机精灵刷原生安卓443不能用无线网怎样回事
应当是那个刷机包里没有带到无线的补钉,看来你要上网去重新搜1个无线补钉
⑶ android面试题 http和https的区别
HTTPS和HTTP的区别
1、HTTPS是加密传输协议,HTTP是名文传输协议;
2、HTTPS需要用到SSL证书,而HTTP不用;
3、HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO;
4、 HTTPS标准端口443,HTTP标准端口80;
5、 HTTPS基于传输层,HTTP基于应用层;
6、 HTTPS在浏览器显示绿色安全锁,HTTP没有显示;
要实现https加密,需要到CA机构申请SSL证书,目前市面有免费的SSL证书有沃通免费SSL证书,startssl免费证书。
⑷ 安卓系统443系统
只有安卓4.2和4.4,4.3一出来就马上更新成4.4
⑸ 我老婆还是用安卓442版本,升级个443升级不到,我现在都用444版本本,有什么办法啊
手机硬件配置不支持。死心吧
⑹ android https 支持哪些标准
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议
它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。
它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
HTTPS和HTTP的区别:
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全
HTTPS解决的问题:
1
. 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 改证书只有用于对应的server
的时候,客户度才信任次主机. 所以目前所有的银行系统网站,关键部分应用都是https 的. 客户通过信任该证书,从而信任了该主机.
其实这样做效率很低,但是银行更侧重安全. 这一点对我们没有任何意义,我们的server ,采用的证书不管自己issue
还是从公众的地方issue, 客户端都是自己人,所以我们也就肯定信任该server.
2 . 通讯过程中的数据的泄密和被窜改
1. 一般意义上的https, 就是 server 有一个证书.
a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.
b) 服务端和客户端之间的所有通讯,都是加密的.
i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.
ii. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了.
2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书.
a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份. 应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.
b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体.
HTTPS 一定是繁琐的.
a) 本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7 个往返.
i. 任何应用中,过多的round trip 肯定影响性能.
b) 接下来才是具体的http协议,每一次响应或者请求, 都要求客户端和服务端对会话的内容做加密/解密.
i. 尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU,为此有专门的SSL 芯片. 如果CPU 信能比较低的话,肯定会降低性能,从而不能serve 更多的请求.
ii. 加密后数据量的影响. 所以,才会出现那么多的安全认证提示
⑺ 安卓http和https的区别
HTTPS()安全超文本传输协议它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。HTTPS和HTTP的区别:https协议需要到ca申请证书,一般免费证书很少,需要交费。http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全HTTPS解决的问题:1.信任主机的问题.采用https的server必须从CA申请一个用于证明服务器用途类型的证书.改证书只有用于对应的server的时候,客户度才信任次主机.所以目前所有的银行系统网站,关键部分应用都是https的.客户通过信任该证书,从而信任了该主机.其实这样做效率很低,但是银行更侧重安全.这一点对我们没有任何意义,我们的server,采用的证书不管自己issue还是从公众的地方issue,客户端都是自己人,所以我们也就肯定信任该server.2.通讯过程中的数据的泄密和被窜改1.一般意义上的https,就是server有一个证书.a)主要目的是保证server就是他声称的server.这个跟第一点一样.b)服务端和客户端之间的所有通讯,都是加密的.i.具体讲,是客户端产生一个对称的密钥,通过server的证书来交换密钥.一般意义上的握手过程.ii.加下来所有的信息往来就都是加密的.第三方即使截获,也没有任何意义.因为他没有密钥.当然窜改也就没有什么意义了.2.少许对客户端有要求的情况下,会要求客户端也必须有一个证书.a)这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码,还有一个CA认证过的身份.应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.b)目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体.HTTPS一定是繁琐的.a)本来简单的http协议,一个get一个response.由于https要还密钥和确认加密算法的需要.单握手就需要6/7个往返.i.任何应用中,过多的roundtrip肯定影响性能.b)接下来才是具体的http协议,每一次响应或者请求,都要求客户端和服务端对会话的内容做加密/解密.i.尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU,为此有专门的SSL芯片.如果CPU信能比较低的话,肯定会降低性能,从而不能serve的请求.ii.加密后数据量的影响.所以,才会出现那么多的安全认证提示
⑻ 怎样在安卓手机上配置outlook账号
如何在Android手机/平板电脑上设置Outlook?Microsoft Office Outlook是微软办公软件套装的组件之一,有很多公司用outlook来收、发、写、管理电子邮件,在公司电脑使用outlook邮箱的同时也让移动设备也能同步使用outlook邮箱,随时随地办公增加工作效率,下面安下小编教大家如何在Android手机/平板电脑上设置Outlook,希望能帮到你! 如果拥有以 @outlook、@msn 结尾的 Outlook 电子邮件帐户之类的 Microsoft 帐户,请使用此选项。这包括国际域,例如 @outlook 上托管的任何自定义域。 使用 Outlook for Android 应用添加 outlook 帐户添加电子邮件帐户添加其他帐户删除帐户使用内置 Android 邮件应用添加 outlook)。(这可能是以 @outlook、@msn 结尾的电子邮件帐户,并包括 @outlook 上托管的任何自定义域。) 3、如果只想将电子邮件帐户同步到手机,请点击“下一步”并按照接下来的提示进行操作。 但是如果需要其他同步选项(例如将日历和联系人也进行同步),请选择“手动设置”并按照以下步骤进行操作。 注意: 以下手动步骤仅适用于 Outlook。如果“域”和“用户名”在设备上是分开的文本框,请将“域”框保留为空,然后在“用户名”框中键入完整电子邮件地址。 密码:使用用于访问帐户的密码。 服务器名称:对于以 @outlook、@msn 结尾的任何电子邮件帐户,可能需要使用“s”进行替换,其中包括 @outlook 上托管的任何自定义域。 端口:使用443 或 993。 安全类型:选择“SSL/TLS”或确保选中“使用安全连接 (SSL)”复选框,然后点击“下一步”。 7、在“帐户选项”页面上,更改或接受默认同步设置,然后选择“下一步”。 8、如果需要,可以对帐户命名,然后选择“下一步”。 以上步骤不起作用?请确保输入的电子邮件和密码正确,然后重试,因为即使一个小的拼写错误也会引起错误。 如果你已打开双重验证,并且你看到“密码不正确”错误,请参阅本主题中的电子邮件设置疑难解答一节。 如果同步了日历和联系人,则可以转到设备上的这些内置应用以查看可能存在的任何项目。如果也同步了任务,则应能够在设备上的日历应用中看到它们。可能需要几分钟的时间,所有内容才会同步完成。 你还可以使用设备上的浏览器中检查以 @outlook 或 @live,登录你的电子邮件帐户。 如何在Android手机/平板电脑上设置Outlook的分享就到这里,希望这篇文章可以给你带来帮助。更多软件使用教程,最新最全绿色软件下载,尽在安下软件站。
⑼ 接触Android网络编程需要什么知识基础
Android平台的网络应用绝大部分都是基于java的编程接口的,也就是说我们开发类似的运用的时候可以有多种选择,比J2me确实好多了。
2.1. 标准Java接口
java.net.*下面提供了访问 HTTP 服务的基本功能。使用这部分接口的基本操作主要包括:
·创建 URL 以及 URLConnection / HttpURLConnection 对象
· 设置连接参数
·连接到服务器
· 向服务器写数据
·从服务器读取数据
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
try {
// 创建一个 URL 对象
URL url = new URL(your_url);
// 创建一个 URL 连接,如果有代理的话可以指定一个代理。
URLConnection connection = url.openConnection(Proxy_yours);
// 对于 HTTP 连接可以直接转换成 HttpURLConnection,
// 这样就可以使用一些 HTTP 连接特定的方法,如 setRequestMethod() 等
//HttpURLConnection connection =
(HttpURLConnection)url.openConnection(Proxy_yours);
// 在开始和服务器连接之前,可能需要设置一些网络参数
connection.setConnectTimeout(10000);
connection.addRequestProperty("User-Agent",
"J2me/MIDP2.0");
// 连接到服务器
connection.connect();
// 往服务器写数据,数据会暂时被放到内存缓存区中
// 如果仅是一个简单的 HTTP GET,这一部分则可以省略
OutputStream outStream = connection.getOutputStream();
ObjectOutputStream objOutput = new ObjectOutputStream(outStream);
objOutput.writeObject(new String("this is a string..."));
objOutput.flush();
// 向服务器发送数据并获取应答
InputStream in = connection.getInputStream();
// 处理数据
...
} catch (Exception e) {
// 网络读写操作往往会产生一些异常,所以在具体编写网络应用时
// 最好捕捉每一个具体以采取相应措施
}
2.2. Apache接口
Apache HttpClient 是一个开源项目,弥补了 java.net.* 灵活性不足的缺点,为客户端的HTTP编程提供高效、最新、功能丰富的工具包支持。Android 平台引入了 Apache HttpClient 的同时还提供了对它的一些封装和扩展,例如设置缺省的HTTP超时和缓存大小等。早期的 Android 曾同时包括 Commons HttpClient (org.apache.commons.httpclient.*) 和 HttpComponents (org.apache.http.client.* ),不过当前版本 (1.5) 中开发者只能使用后者,也就是说类似以下的一些类:
使用这部分接口的基本操作与 java.net.* 基本类似,主要包括:
· 创建 HttpClient 以及 GetMethod / PostMethod, HttpRequest 等对象
·设置连接参数
·执行 HTTP 操作
· 处理服务器返回结果
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.params. HttpConnectionParams;
import org.apache.http.client.params. HttpClientParams;
try {
// 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)
HttpParams params = new BasicHttpParams();
// 设置连接超时和 Socket 超时,以及 Socket 缓存大小
HttpConnectionParams.setConnectionTimeout(params, 20 * 1000);
HttpConnectionParams.setSoTimeout(params, 20 * 1000);
HttpConnectionParams.setSocketBufferSize(params, 8192);
// 设置重定向,缺省为 true
HttpClientParams.setRedirecting(params, true);
// 设置 user agent
HttpProtocolParams.setUserAgent(params, userAgent);
// 创建一个 HttpClient 实例
// 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient
// 中的用法,在 Android 1.5 中我们需要使用 Apache 的缺省实现 DefaultHttpClient
HttpClient httpClient = new DefaultHttpClient(params);
// 创建 HttpGet 方法,该方法会自动处理 URL 地址的重定向
HttpGet httpGet = new HttpGet ("http://www.test_test.com/");
HttpResponse response = client.execute(httpGet);
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
// 错误处理,例如可以在该请求正常结束前将其中断
httpGet.abort();
}
// 读取更多信息
Header[] headers = response.getHeaders();
HttpEntity entity = response.getEntity();
Header header = response.getFirstHeader("Content-Type");
} catch (Exception ee) {
//
} finally {
// 释放连接
client.getConnectionManager().shutdown();
}
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.params. HttpConnectionParams;
import org.apache.http.client.params. HttpClientParams;
try {
// 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)
HttpParams params = new BasicHttpParams();
// 设置连接超时和 Socket 超时,以及 Socket 缓存大小
HttpConnectionParams.setConnectionTimeout(params, 20 * 1000);
HttpConnectionParams.setSoTimeout(params, 20 * 1000);
HttpConnectionParams.setSocketBufferSize(params, 8192);
// 设置重定向,缺省为 true
HttpClientParams.setRedirecting(params, true);
// 设置 user agent
HttpProtocolParams.setUserAgent(params, userAgent);
// 创建一个 HttpClient 实例
// 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient
// 中的用法,在 Android 1.5 中我们需要使用 Apache 的缺省实现 DefaultHttpClient
HttpClient httpClient = new DefaultHttpClient(params);
// 创建 HttpGet 方法,该方法会自动处理 URL 地址的重定向
HttpGet httpGet = new HttpGet ("http://www.test_test.com/");
HttpResponse response = client.execute(httpGet);
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
// 错误处理,例如可以在该请求正常结束前将其中断
httpGet.abort();
}
// 读取更多信息
Header[] headers = response.getHeaders();
HttpEntity entity = response.getEntity();
Header header = response.getFirstHeader("Content-Type");
} catch (Exception ee) {
//
} finally {
// 释放连接
client.getConnectionManager().shutdown();
}
以下例子以 HttpGet 方式通过代理访问 HTTPS 网站:
try {
HttpClient httpClient = new HttpClient();
// 设置认证的数据
httpClient.getCredentialsProvider().setCredentials(
new AuthScope("your_auth_host", 80, "your_realm"),
new UsernamePasswordCredentials("username", "password"));
// 设置服务器地址,端口,访问协议
HttpHost targetHost = new HttpHost("www.test_test.com", 443, "https");
// 设置代理
HttpHost proxy = new HttpHost("192.168.1.1", 80);
httpClient.getParams().setParameter
(ConnRoutePNames.DEFAULT_PROXY, proxy);
// 创建一个 HttpGet 实例
HttpGet httpGet = new HttpGet("/a/b/c");
// 连接服务器并获取应答数据
HttpResponse response = httpClient.execute(targetHost, httpGet);
// 读取应答数据
int statusCode = response.getStatusLine().getStatusCode();
Header[] headers = response.getHeaders();
HttpEntity entity = response.getEntity();
} catch (Exception ee) {
//
2.3. Android接口
android.net.* 实际上是通过对 Apache 的 HttpClient 的封装来实现的一个 HTTP 编程接口,同时还提供了 HTTP 请求队列管理, 以及 HTTP 连接池管理,以提高并发请求情况下(如转载网页时)的处理效率,除此之外还有网络状态监视等接口。
以下是一个通过 AndroidHttpClient 访问服务器的最简例子:
import import android.net.http.AndroidHttpClient;
try {
AndroidHttpClient client = AndroidHttpClient.newInstance(“your_user_agent”);
// 创建 HttpGet 方法,该方法会自动处理 URL 地址的重定向
HttpGet httpGet = new HttpGet ("http://www.test_test.com/");
HttpResponse response = client.execute(httpGet);
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
// 错误处理
}
// 关闭连接
client.close();
} catch (Exception ee) {
//
}
⑽ 如何使用charles对Android Https进行抓包
你好,
1、给Mac安装证书。
打开Charles,在Menu选择SSL Proxying > Install Charles Root Certificate,Keychain Access(钥匙访问串)被打开,我们可以看到Charles Certificate已经被安装,
2、信任证书
但此时该证书并没有被信任,双击该行弹出证书详情,选择“Always Trust”。
3、给手机安装证书
打开Charles,在Menu选择SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser,弹出提示框
安装提示进行配置,需要注意的是192.168.0.101是我演示时候的IP,你要改成你自己的IP地址。IP配置之后用手机浏览器打开下载证书。如果是Android设备,选择设置->从储存设备安装。
4、开启SSL代理功能
在Menu选择Proxy->SSL Proxying Setting,选中Enable SSL Proxying,在Locations里面添加要使用SSL代理的网站,端口号输入443,如果需要匹配所有的HTTPS网站则输入 * 号即可。现在即可拦截Https的数据包。