HTTP与HTTPS的区别以及代码实现请求
来源:互联网 发布:iphone数据恢复教程 编辑:程序博客网 时间:2024/05/20 04:09
先简单说一下 http与https的定义
-----------------------------------------------
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
另外 关于两者的联系可以简单这样理解:
-------------------------------------------
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
说白了 HTTPS=HTTP+SSL(广义上可以这样理解)
本片文章的重点 说构建请求
HTTPSXMLPOST 请求
贴源码:
public static String sendRequestXmlPost(String reqUrl,Map<String,String> map) throws Exception { String res= null; HttpURLConnection connection = SSLTrustManager.connect(reqUrl); connection.setRequestProperty("Content-Type", "text/xml"); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("POST"); connection.setUseCaches(false); connection.setReadTimeout(30000); byte data[] = XmlUtil.mapToXml(map).getBytes("utf-8"); OutputStream out = connection.getOutputStream(); out.write(data); StringBuffer receivedData = new StringBuffer(); InputStreamReader inReader = new InputStreamReader(connection.getInputStream(), "UTF-8"); BufferedReader aReader = new BufferedReader(inReader); String aLine; while ((aLine = aReader.readLine()) != null) { receivedData.append(aLine); } res = receivedData.toString(); aReader.close(); connection.disconnect(); return res;}请求方式 是XML格式的参数集合 ,mapTOXML 其实是一个工具类,这里就不做解释
HttpURLConnection connection = SSLTrustManager.connect(reqUrl);
与http有区别的就是这一句话 起作用
可以理解为 这是初始化 SSL环境(安全点)
其方法体:
//封装public static HttpURLConnection connect(String strUrl) throws Exception { javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1]; javax.net.ssl.TrustManager tm = new SSLTrustManager(); trustAllCerts[0] = tm; javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, null); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HttpsURLConnection.setDefaultHostnameVerifier((HostnameVerifier) tm); URL url = new URL(strUrl); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); return urlConn; }
阅读全文
1 0
- HTTP与HTTPS的区别以及代码实现请求
- HTTP与HTTPS不同请求的区别
- HTTP请求响应过程以及与HTTPS区别
- http与https的区别以及SSL
- HTTP与HTTPS的区别 HTTPS请求过程
- HTTP请求响应过程 与HTTPS区别
- php之curl实现http与https请求的方法
- PHP之curl实现http与https请求的
- php之curl实现http与https请求的方法
- http以及https请求的连接过程
- Http与Https的区别以及具体是什么(一)?
- Http与Https的区别以及具体是什么(二)?
- HTTP以及其与HTTPS的区别、javaweb
- http协议(模拟http请求,http与https的区别)
- http 和 https 的请求区别
- 微信开发中使用curl实现http与https的post级get请求实例教程(附工程代码)
- http与https的区别
- HTTP与HTTPS的区别
- java语言程序设计第八版第十章十一题
- HDU 1042
- Android利用手机拍照和从相册读取照片的方法
- Window 安装卸载MongoDB 进程服务
- 【题解】弋或树
- HTTP与HTTPS的区别以及代码实现请求
- 在tableView用imageView加载gif,一滑动就崩溃了?
- [展览人周刊]华展云20170724期
- Ubuntu如何访问其他分区
- sklearn_PCA实践
- 笔记本电脑U盘安装win7和win10教程(本地试验成功)
- FairyGUI编辑器制作Unity3D UI值得借鉴
- android开发 之 Paint
- 13.3-全栈Java笔记:打飞机游戏实战项目|PaintThread|launchFrame