TCPIP、Http、Socket的区别

TCPIP、Http、Socket的区别
TCPIP、Http、Socket的区别

TCP/IP、Http、Socket的区别

网络由下往上分为

物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,

三者从本质上来说没有可比性,

socket则是对TCP/IP协议的封装和应用(程序员层面上)。

也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,

而HTTP是应用层协议,主要解决如何包装数据。

关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:

“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。

如果想要使传输的数据有意义,则必须使用到应用层协议。

应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。

WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP 做传输层协议将它发到网络上。”

而我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。

通过Socket,我们才能使用TCP/IP协议。

实际上,Socket跟TCP/IP协议没有必然的联系。

Socket编程接口在设计的时候,就希望也能适应其他的网络协议。

所以说,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,

从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。

网络有一段关于socket和TCP/IP协议关系的说法比较容易理解:

“TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。

这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,

TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

关于TCP/IP协议的相关只是,用博大精深来讲我想也不为过,单单查一下网上关于此类只是的资料和书籍文献的数量就知道,

这个我打算会买一些经典的书籍(比如《TCP/IP详解:卷一、卷二、卷三》)进行学习,今天就先总结一些基于基于TCP/IP协议的应用和编程接口的知识,也就是刚才说了很多的HTTP和Socket。

CSDN上有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。

下面是一些经常在笔试或者面试中碰到的重要的概念,特在此做摘抄和总结。

一、什么是TCP连接的三次握手

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包

ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。

理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开)

二、利用Socket建立网络连接的步骤

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。

为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。

而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

三、HTTP链接的特点

HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

四、TCP和UDP的区别(考得最多。。快被考烂了我觉得- -\\)

1、TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;

而UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。

2、也正由于1所说的特点,使得UDP的开销更小数据传输速率更高,因为不必进行收发数据的确认,所以UDP的实时性更好。

知道了TCP和UDP的区别,就不难理解为何采用TCP传输协议的MSN比采用UDP的QQ传输文件慢了,但并不能说QQ的通信是不安全的,

因为程序员可以手动对UDP的数据收发进行验证,比如发送方对每个数据包进行编号然后由接收方进行验证啊什么的,

即使是这样,UDP因为在底层协议的封装上没有采用类似TCP的“三次握手”而实现了TCP所无法达到的传输效率。

本文摘自蓝鸥教育论坛

https与http的区别

HTTP: http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。 万维网WWW发源于欧洲日内瓦量子物理实验室CERN,正是WWW技术的出现使得因特网得以超乎想象的速度迅猛发展。这项基于TCP/IP的技术在短短的十年时间内迅速成为已经发展了几十年的Internet上的规模最大的信息系统,它的成功归结于它的简单、实用。在WWW的背后有一系列的协议和标准支持它完成如此宏大的工作,这就是Web协议族,其中就包括HTTP超文本传输协议。 HTTPS: HTTPS,是以安全为目标的HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS 存在不同于HTTP 的默认端口及一个加密/身份验证层(在HTTP与TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。 HTTP 原理 ① 客户端的浏览器首先要通过网络与服务器建立连接,该连接

是通过TCP 来完成的,一般TCP 连接的端口号是80。建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME 信息包括请求修饰符、客户机信息和许可内容。 ② 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME 信息包括服务器信息、实体信息和可能的内容。 HTTPS 原理 ① 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器; ② 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数 [2] ; ③ 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret 的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/ 解密),并将加密后的信息发送给服务器; ④ 客户端与服务器端根据pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算法); ⑤ 客户端将所有握手消息的MAC 值发送给服务器;

https和http区别

http协议和https协议的区别:传输信息安全性不同、连接方式不同、端口不同、证书申请方式不同 传输信息安全性不同 1、http协议:是超文本传输协议,信息是明文传输。如果攻击者 截取了Web浏览器和网站服务器之间的传输报文,就可以直接读 懂其中的信息。 2、https协议:是具有安全性的ssl加密传输协议,为浏览器和服 务器之间的通信加密,确保数据传输的安全。 HTTP与HTTPS介绍 超文本传输协议HTTP协议被用于在Web浏览器和网站服务 器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方 式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间 的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适 合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS 在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。 HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全 HTTPS协议的主要作用可以分为两种:一种是建立一个信息 安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。 HTTPS和HTTP的主要区别

1、https协议需要到CA申请证书,一般免费证书较少,因而需 要一定费用。 2、http是超文本传输协议,信息是明文传输,https则是具 有安全性的ssl/tls加密传输协议。 3、http和https使用的是完全不同的连接方式,用的端口也 不一样,前者是80,后者是443。 4、http的连接很简单,是无状态的;HTTPS协议是由 SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTPS的测试

基于安全协议的https的页面测试脚本 一、loadrunner8.1 HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。 在使用https协议不管是服务器端还是客户端都需要使用到ca证书来进行访问。 一般来说,性能测试为所常见的为客户端使用https打开页面的方式。 在这个情况下,首先是处理https访问过程中的证书 1.证书的准备 常见的证书为:*.pfx,*.p12格式,该种格式的证书可以通过双击运行安装到IE浏览器上。用户在访问的时候就可以使用到。 但这些证书并不是LoadRunner所使用的类型,因此需要对其进行转换。将其转换为*.pem 格式。 转换方法如下: ●安装openssl后 ●运行C:\/bin文件夹的openssl二进制文件,它将启动OpenSSL命令提示符●执行以下命令:pkcs12 -in c:\test1.pfx -out c:\test01.pem –nodes ●或者直接在cmd下面执行:openssl pkcs12 -in c:\test1.pfx -out c:\test01.pem –nodes ●执行后,将会在指定目录生成test01.pem文件,这个文件将会在下一个步骤,对 LoadRunner进行配置的时候使用到。 2.LR配置 启动LoadRunner,打开Recording Option选项。

选择后,单击New Enty 红框中的配置为服务器的ip(或者域名)和端口号(ssl默认端口443),按照测试所需要的实际地址进行配置。 配置后,将Use specified client-side certificate[Base64/PEM]钩选,为使用客户端证书访问。 单击...选择刚刚转换生成的客户端证书。 如果你为证书有设置密码,在这里也需要输入。

https与http的区别

https与http的区别: 第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议 http与https有什么区别 http和https使用的是完全不一样的连接方式,端口也不一样,前者默认是80端口 http与https有什么区别 http是无状态的协议,而https是由ssl+http构建的可进行加密传输、身份认证的网络协议。 http的无状态是指对事务处理没有记忆能力,缺少状态意味着对后续处理需要的信息没办法提供,只能重新传输这些信息,这样就会增大数据量。另一方面,当不需要信息的时候服务器应答较为快。 HTTP: HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。 HTTPS: HTTPS,是以安全为目标的HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS 存在不同于HTTP 的默认端口及一个

加密/身份验证层。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。 HTTP 原理 客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP 来完成的,一般TCP 连接的端口号是80。建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符、协议版本号,后边是MIME 信息包括请求修饰符、客户机信息和许可内容。 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME 信息包括服务器信息、实体信息和可能的内容。 HTTPS 原理 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器; 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数; 客户端对服务器的证书进行验证,并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret 的随机密码串,并使用服务器的公用密钥对其进行加密,并将加密后的信息发送给服务器; 客户端与服务器端根据pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算

https与http区别

http与https的区别: http协议传输的数据都是未加密的,也就是明文的,因此使用http协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了ssl(secure sockets layer)协议用于对http协议传输的数据进行加密,从而就诞生了https。 简单来说,https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。 https和http的主要区别: 一、https协议需要到ca机构申请ssl证书(如沃通ca),另外沃通ca还提供3年期的免费ssl证书,高级别的ssl证书需要一定费用。 二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。 三、http和https使用的是完全不同的连接方式,用的端口也不一样,http是80端口,https是443端口。 四、http的连接很简单,是无状态的;https协议是由ssl+http 协议构建的可进行加密传输、身份认证的网络协议,比http协议安全.

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

Java获取http和https协议返回的json数据

Java获取http和https协议返回的json数据 现在很多公司都是将数据返回一个json,而且很多第三方接口都是返回json数据,而且还需要使用到http协议,http协议是属于为加密的协议,而https协议需要SSL证书,https是将用户返回的信息加密处理,然而我们要获取这些数据,就需要引入SSL证书。现在我提供两个方法,帮助各位如何获取http和https返回的数据。 获取http协议的数据的方法,如下: public static JSONObject httpRequest(String requestUrl, String requestMethod) { JSONObject jsonObject = null; StringBuffer buffer = new StringBuffer(); try { URL url = new URL(requestUrl); // http协议传输 HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(); httpUrlConn.setDoOutput(true); httpUrlConn.setDoInput(true); httpUrlConn.setUseCaches(false); // 设置请求方式(GET/POST)

httpUrlConn.setRequestMethod(requestMethod); if ("GET".equalsIgnoreCase(requestMethod)) httpUrlConn.connect(); // 将返回的输入流转换成字符串 InputStream inputStream = httpUrlConn.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String str = null; while ((str = bufferedReader.readLine()) != null) { buffer.append(str); } bufferedReader.close(); inputStreamReader.close(); // 释放资源 inputStream.close(); inputStream = null; httpUrlConn.disconnect(); jsonObject =

https和http的区别

一、什么是HTTP?什么又是HTTPS? 1、想要了解http的同学可以先点击这个链接谈谈HTTP协议的流程。 2、至于https,一眼看上去似乎是http的加强版,如果你也是这么下意识认为的话,那么恭喜你你的下意识完全正确。 https即Hyper Text Transfer Protocol over Secure Socket Layer,望文知意便是基于安全套接层的超文本传输协议。我们可以将https理解为http的安全加强版。至于如何安全加强的我会在后文详细讲解。 二、HTTP和HTTPS的现状 1、我们发现如今浏览器地址栏中大多是以" https://"开始的URL(统一资源定位符/网址)而不再是“http://” 如知乎 如腾讯

再如百度 还有淘宝 实际上,现如今国外很多网站包括国内都在使用https。 那么看到这里我们可能会想到,为什么现如今大多数网址中都是" https://"而不是“http://”呢?进一步地讲,https相比于http的优势在哪里? 三、HTTPS的优势 要知道HTTPS 的优势在哪我们首先要知道什么是明文传输,什么是抓包,什么是SSL。 1、明文传输:明文传输一般常指计算机于计算机之间进行数据传输时的方式,这种方式下数据传输是没有加密的。 2、抓包:抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作。

而http协议是采用的就是明文传输,这种方式下很容易被抓包。 如图一所示:http协议中传输的不加密的数据容易被黑客截取。 图一 若是传输的数据中有用户的密码等信息被黑客截取到了,那么带来的后果是灾难性的。 为了避免数据被抓包,应用SSL技术的HTTPS协议应运而生。 3、SSL即Secure Sockets Layer ,望文知意即安全套接层。 通过下面一组图,我们可以看出SSL是如何实现数据加密的。

spring cloudspring boot同时支持http和https访问

spring cloudspring boot同时支持http和https访问 前言 关于spring boot同时支持http和https访问,在spring boot官网73.9已经有说明文档了,同样在github上也有官网的例子。 在这里,我向大家讲述一下,我是怎么实现的。 方式一 一、相关配置 server: port: 4000 https: port: 8443 ssl: key-store: classpath:sample.jks key-store-password: secret key-password: password 可以看到,只是简简单单添加端口的信息,sample.jks可以

自己生成(记得对应密码),也可以在官网例子里面下载。 二、spring boot启动文件读取配置信息(注:请添加必要的jar) @SpringBootApplication public class GatewayApplication { public static void main(String[] args) throws Exception { SpringApplication.run(GatewayApplication.class, args); } @Value("${https.port}") private Integer port; @Value("${https.ssl.key-store-password}") private String key_store_password; @Value("${https.ssl.key-password}") private String key_password;

https与http的区别

超文本传输协议(HTTP)用于在Web浏览器和Web服务器之间传输信息。HTTP协议以纯文本形式发送内容,而没有任何数据加密。如果攻击者拦截了Web浏览器和Web服务器之间的传输消息,则可以直接读取信息。因此,HTTP协议不适合传输一些敏感的兴趣消息,例如:信用卡号,密码和其他付款信息。 为了解决HTTP协议的这一缺陷,我们需要使用另一种协议:安全套接字层超文本传输协议(HTTP)。为了数据传输的安全性,SSL / TLS在HTTP的基础上添加了SSL / TLS协议。SSL / TLS通过证书验证服务器的身份,并对浏览器和服务器之间的通信进行加密。 HTTPS协议是由SSL / TLS + HTTP协议构建的网络协议,可用于加密传输和身份验证,并且比HTTP协议更安全 HTTPS协议的主要功能可以分为两种:一种是建立信息安全通道,以确保数据传输的安全性;另一种是建立信息安全通道。另一种是确认网站的真实性。 HTTPS和http之间的主要区别 HTTPS协议需要从ca申请证书。通常,免费证书很少,因此需要一定的费用。 HTTP是超文本传输协议,信息是纯文本传输,HTTPS是具有安全性的SSL / TLS加密传输协议。 HTTP和HTTPS使用完全不同的连接方法并使用不同的端口。前者是80,后者是443。 HTTP的连接非常简单且无状态。HTTP协议由SSL / TLS +

HTTP协议构建,可用于加密传输和身份验证,并且比HTTP协议更安全。 客户端使用HTTPS与Web服务器通信的步骤 客户端使用HTTPS的URL访问Web服务器,并要求与Web 服务器建立SSL连接。 收到客户端的请求后,Web服务器将向客户端发送网站证书信息的副本(证书包含公钥)。 客户端的浏览器和Web服务器开始协商SSL / TLS连接的安全级别,即信息加密级别。 客户端的浏览器根据双方同意的安全级别建立会话密钥,然后用网站的公共密钥对会话密钥进行加密,并将其传输到网站。 Web服务器使用其自己的私钥解密会话密钥。 Web服务器使用会话密钥来加密与客户端的通信。

https和http有什么区别

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1]。HTTPS 在HTTP 的基础下加入SSL层,HTTPS 的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS 存在不同于HTTP 的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统提供了身份验证与加密通讯方法。 http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。 两者不同之处: 一、传输信息安全性不同 1、http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。 2、https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。 二、连接方式不同 1、http协议:http的连接很简单,是无状态的。 2、https协议:是由SSL+HTTP协议构建的可进行加密传输、身份

认证的网络协议。 三、端口不同 1、http协议:使用的端口是80。 2、https协议:使用的端口是443. 四、证书申请方式不同 1、http协议:免费申请。 2、https协议:需要到ca申请证书,一般免费证书很少,需要交费。

强制http跳转https页面

she强制http跳转https页面 简介 https在现在网络中是公认的安全的访问方式,但是在访问的过程中很多站点是没有强制https访问的,这样会导致有些客户可以通过http访问,从而对服务器造成一些不安全因素。下文将介绍几种强制https访问的方法。 一,wordpress中设置https强制访问。 默认登录wordpress的后台是使用http协议,这协议是明文发送的。这可能会导致你的用户和密码被窃听。如果使用ssl登录,这种情况则可以避免。下面是设置方法。 1、设置wp-config.php /* That's all, stop editing! Happy blogging. */ ... require_once(ABSPATH . 'wp-settings.php'); 2、在上面的代码之前加上如下代码: define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true); define(‘FORCE_SSL_LOGIN’, true);#是启用登录时使用ssl define(‘FORCE_SSL_ADMIN’, true);#后台管理也使用ssl 如果担心后台使用ssl影响速度,可以不用。但还是建议使用,因为这将有可能cookie 被劫持导致黑客伪造cookie登录后台。 wordpress只需要几步设定就可以启用强制使用HTTPS登入后端管理界面首先到wp-config.php中找到下面这段:

if ( !defined(‘ABSPATH’) ) define(‘ABSPATH’, dirname(__FILE__) . ‘/’); 找到它以后,請在它上面加入下列此行: define(‘FORCE_SSL_LOGIN’, true); 接下來请在VHOST上设定好SSL的相关设置..这里就不再叙述了 以下附上nginx上如何使用vhost并且自动rewrite url跳转到https管理页面的设定值: 请在rewrite rule上面加入rewrite ^.*/wp-admin(.*) https://wp.littlecho.tw/wp-admin$1 last; 即可 例如下: location / { try_files $uri $uri/ /index.php; rewrite ^.*/wp-admin(.*) https://wp.littlecho.tw/wp-admin$1 last; } 设定完毕后当输入http://xxxx.domain.tld/wp-admin时就会自动跳转了。 二,tomcat中的跳转配置 在tomcat中设置强制https的方法有2种,下面分别介绍下这2种方法的配置: 1,调整web.xml文件,将HTTP使用的server.xml文件重定向端口 在记事本中打开 SGMS4\Tomcat\webapps\sgms\WEB-INF\web.xml文件,在web.xml的文件末尾的前一句添加以下内容:

https和http区别

HTTPS和HTTP的主要区别: https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。 http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 HTTP和HTTPS的基本概念: HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。 http切换到HTTPS: 如果需要将网站从http切换到https到底该如何实现呢?

这里需要将页面中所有的链接,例如js,css,图片等等链接都由http改为https。例如:https://www.360docs.net/doc/c86372655.html,改为https://https://www.360docs.net/doc/c86372655.html, BTW,这里虽然将http切换为了https,还是建议保留http。所以我们在切换的时候可以做http和https的兼容,具体实现方式是,去掉页面链接中的http头部,这样可以自动匹配http头和https 头。例如:将https://www.360docs.net/doc/c86372655.html,改为//https://www.360docs.net/doc/c86372655.html,。然后当用户从http的入口进入访问页面时,页面就是http,如果用户是从https的入口进入访问页面,页面即使https的。

HTTPS原理及交互过程

1 HTTP及HTTPS HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像,本质上是一种不安全的请求交互方式。 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https://URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。 2 HTTP和HTTPS区别 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)少许对客户端有要求的情况下,会要求客户端也必须有一个证书。

47 https和http的区别

http和https有什么区别 https是什么? https, 全称Hyper Text Transfer Protocol Secure,相比http,多了一个secure,这一个secure是怎么来的呢?这是由TLS(SSL)提供的,这个又是什么呢?估计你也不想知道。大概就是一个叫openSSL的library提供的。https和http都属于application layer,基于TCP(以及UDP)协议,但是又完全不一样。TCP用的port 是80,https用的是443(值得一提的是,google发明了一个新的协议,叫QUIC,并不基于TCP,用的port也是443,同样是用来给https的。谷歌好牛逼啊。)总体来说,https和http类似,但是比http安全。 https做得怎么样? 一般来说网络安全关心三个问题,CIA,(confidentiality, integrity, availability)。那https在这三方面做的怎么样呢?https保证了confidentiality(你浏览的页面的内容如果被人中途看见,将会是一团乱码。不会发生比如和你用同一个无线网的人收到一个你发的数据包,打开来一看,就是你的密码啊银行卡信息啊),intergrity(你浏览的页面就是你想浏览的,不会被黑客在中途修改,网站收到的数据包也是你最初发的那个,不会把你的数据给换掉,搞一个大新闻),最后一个availability几乎没有提供(虽然我个人认为会增加基础DOS等的难度,但是这个不值一提),不过https还提供了另一个A,authentication(你连接的是你连接的网站,而不是什么人在中途伪造了一个网站给你,专业上叫Man In The Middle Attack)。那https具体保护了啥?简单来说,保护了你从连接到这个网站开始,到你关闭这个页面为止,你和这个网站之间收发的所有信息,就连url的一部分都被保护了。同时DNS querying这一步也被保护了,不会发生你输入 https://www.360docs.net/doc/c86372655.html,,实际上跑到了另一个网站去了。(这个其实也属于authentication,我这里不是很确定,最开始还写错了一次,应该来说,https保护了DNS Spoofing 和DNS Cache Poisoning等DNS攻击)那么有哪些没有被保护的?你是谁,你访问了什么网站(这个就是anonymity,想要上不好的网站但是不被人知道?可以用VPN或者TOR,当然可能要付出金钱或者速度变慢的代价啦。)https怎么做到的? 这个就很复杂了。有兴趣的朋友可以看一下这个“The First Few Milliseconds of an HTTPS Connection”。我来简单介绍一下里面的一些手段。比如你如何确信这个网站是一个好网站?好网站就会有一个“好网站证书”,也就是certification,这个证书是由CA(certificate authority)颁布的,每次链接,网站都先去找CA拿一份证书,然后把这个证书一起发给客户,来证明自己的清白。也许你会问,万一是一个坏网站自己伪造的证书呢?这就要牵扯到RSA的公钥,私钥加密。不过,google 的https是他们自己公司的一个CA发的,感觉怪怪的。总之,你基本可以相信这是一个好网站(历史上也有CA被入侵之类的事件发生)。这就是authentication (应该也是保护DNS的一步)。当然你也会需要向网站证明一下你自己的身份,然后你们就要决定用什么方式加密。加密的方式有很多种,比如各种AES啦什么的。客户告诉网站,我的浏览器支持哪些加密方式,然后网站选择其中一种,于

http与https的区别

http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。 万维网WWW(world wide web)发源于欧洲日内瓦量子物理实验室CERN,正是WWW技术的出现使得因特网得以超乎想象的速度迅猛发展。这项基于TCP/IP的技术在短短的十年时间内迅速成为已经发展了几十年的Internet上的规模最大的信息系统,它的成功归结于它的简单、实用。在WWW的背后有一系列的协议和标准支持它完成如此宏大的工作,这就是Web协议族,其中就包括HTTP 超文本传输协议。 HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的HTTP 通道,在HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS 存在不同于HTTP 的默认端口及一个加密/身份验证层(在HTTP与TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。 HTTP 原理 ① 客户端的浏览器首先要通过网络与服务器建立连接,该连接

是通过TCP 来完成的,一般TCP 连接的端口号是80。建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME 信息包括请求修饰符、客户机信息和许可内容。 ② 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME 信息包括服务器信息、实体信息和可能的内容。 HTTPS 原理 ① 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器; ② 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数 [2] ; ③ 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret 的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/ 解密),并将加密后的信息发送给服务器; ④ 客户端与服务器端根据pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算法); ⑤客户端将所有握手消息的MAC 值发送给服务器;

HTTPS为什么比较安全

HTTPS为什么比较安全 HTTP和HTTPS的安全性 1. HTTP协议为什么是不安全的 HTTP协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,因此通信过程非常容易遭遇劫持、监听、篡改。严重情况下,会造成恶意的流量劫持、个人隐私泄露(比如银行卡卡号和密码泄露)等严重的安全问题。 可以把HTTP通信比喻成寄送信件一样,A给B寄信,信件在寄送过程中,会经过很多的邮递员之手,他们可以拆开信读取里面的内容(因为HTTP是明文传输的)。A的信件里面的任何内容(包括各类账号和密码)都会被轻易窃取。除此之外,邮递员们还可以伪造或者修改信件的内容,导致B接收到的信件内容是假的。 这边举例几个HTTP通信不安全的列子:在HTTP通信过程中,“中间人”将广告链接嵌入到服务器发给用户的HTTP报文里,导致用户界面出现很多不良链接;或者是修改用户的请求头URL,导致用户的请求被劫持重定向到另外一个网站,用户的请求永远到不了真正的服务器。 2. HTTPS如何保证安全 我们都知道HTTPS是安全的HTTP,那么HTTPS是如何保证通信过程的安全的呢? 如果服务器给客户端的消息是密文的,只有服务器和客户端才能读懂,就可以保证数据的保密性。同时,在交换数据之前,验证一下对方的合法身份,就可以保证通信双方的安全。(和我们平时开发中RSA加签验签,加密解密的过程比较像)。HTTPS就是利用了类似的原理来保证通信的安全性。 所以HTTPS保证安全通信的步骤主要分为两步: ?通信前验证对方的合法身份; ?将通信的报文加密,通过密文进行通信。 下面来看看HTTPS的具体实现。

C#Get请求区分http和https地址并压缩返回结果防止数据流截断

///

///请求数据 /// ///请求地址 ///是否需要压缩 ///接口返回信息 privatestring GetRequest(string Url, bool Gzip) { HttpWebRequest request = null; Encoding srcEncoding = Encoding.Default; Encoding dstEncoding = Encoding.Default; if (Url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { request = WebRequest.Create(Url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; //http版本,默认是1.1,这里设置为1.0 } else { request = WebRequest.Create(Url) as HttpWebRequest; } if (Gzip) request.Headers.Add("Accept-Encoding", "gzip"); request.ContentType = "application/json"; request.Method = "GET"; request.ReadWriteTimeout = 10000;//设置写入或读取流时的超时 string Result = string.Empty; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.ContentEncoding.ToLower().Contains("gzip")) { using (GZipStream stream = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress)) { using (StreamReader reader = new StreamReader(stream)) { Result = reader.ReadToEnd(); } } } elseif (response.ContentEncoding.ToLower().Contains("deflate")) {

http和https有什么区别

http和https最主要的差别就是http是明文传输数据,而https传输的数据经过加密。 什么是http HTTP,英文全称Hyper Text Transfer Protocol,中文全称“超文本传输协议”,按照OSI参考模型,它属于第七层应用层的协议。HTTP的作用是提供了一组规则和标准,用于控制如何在万维网上传输任何信息,提供了Web 浏览器和服务器进行通信的标准规则。目前主要使用的是HTTP/1.0 和HTTP/1.1 两个版本,主流使用的是HTTP/1.1。

http使用场景 当在浏览器输入网址按回车之后,默认自动会在网址前面加上http://。它表示浏览器与web服务器通过http协议进行连接和传输数据。当浏览器获得http响应之后,会进行渲染,变成我们可以看到的网页。 http工作原理

http是基于C/S结构的协议,浏览器在向服务器发送请求之前,首先需要建立TCP连接,然后才能发送HTTP请求报文,并接收HTTP响应报文。 http请求响应过程大概可以分为四步: (1)客户端请求服务器建立连接; (2)连接建立后,客户端向服务器发送http请求; (3)服务器接收到http请求后,并根据请求做相应的响应; (4)完成请求之后,客户端与服务端断开连接。 什么是https https,英文全称Hyper Text Transfer Protocol over SecureSocket Layer,中文全称超文本传输安全协议。是在http的基础上加上TLS/SSL协议,通过加密传输和身份验证保证传输的安全性。https最初是基于ssl,后来 ssl协议升级并命名为tls协议,目前tls协议最新版本是tls1.3,主流使用的是tls1.2版本。

linux下https和http的配置方法

HTTP的配置 在Linux上运行https://www.360docs.net/doc/c86372655.html,网站或WebApi 我们使用Jexus5.8.1制作的一款无需安装mono就能使用的“独立版”,该“独立版”支持64位的CentOS6.5、Ubuntu12.04以上版本的操作系统,能运行WebForm、Mvc3-5、WebService以及WebApi,支持PHP,支持OWIN,支持反向代理,也就是说,无需安装mono的“独立版”与需要安装mono的“通用版”在功能上是完全相同的。下面具体谈谈Jexus“独立版”的使用。 一、下载: 把jexus压缩包下载到linux临时文件夹中。 cd/tmp https://www.360docs.net/doc/c86372655.html,/down/jexus-5.8.1-x64.tar.gz 该命令执行完成后,jexus独立版就被下载到了/tmp文件夹 二、解压: tar-zxvfjexus-5.8.1-x64.tar.gz 解压完成后,会在/tmp中得到一个jexus文件夹。 三、移动: 把jexus文件夹移动或复制到一个指定的工作位置,这个位置你自己决定,建议大家统一使用/usr路径。 sudomvjexus/usr 然后清理/tmp中的jexus: sudorm-rf/tmp/jexus* 四、建一个简单的aspx网页用于测试: 由于jexus的默认的网站配置文件指向的物理路径是/var/www/default,所以,我们在/var下创建www文件夹(创建文件见命令:mkdir文件夹名),在www下创建default 文件夹。创建完成后,进入default文件夹,用vim编写一个简单的index.aspx,仅如下两句: <%@PageLanguage="C#"%> <%=DateTime.Now.ToString()%> 保存后退出。 五、启动jexus并尝试访问默认网站: cd/usr/jexus sudo./jwsstart 六,Jexus的“卸载”: Jexus是“绿色软件”,除了jexus文件夹外,它不会在系统的其它地方写入任何文件,也不会注册任意信息,所以,它的卸载很简单:删除jexus文件夹就行了。 七,Jexus的常用命令:(需要进入/usr/local/jexus运行如下命令) 启动:sudo./jwsstart 重启:sudo./jwsrestart 停止:sudo./jwsstop 启动某个网站:sudostart网站名 重启某个网站:sudorestart网站名 停止某个网站:sudostop网站名

相关文档
最新文档