http和https区别

HTTP(Hypetext Transfer Protocol):超文本传输协议:是一种基于请求和响应模式的,无状态的,无记忆的,应用层的协议,常基于tcp的连接方式;

HTTPS(Secure Hypertext Transfer Protocol):安全超文本传输协议;

1.连接方式不同:HTTP和HTTPS采用的是不同的连接方式,端口号不同,前者是80,后者是443;

2.HTTP的连接是无状态的,明文传输的,HTTPS是由SSL和HTTP协议构建而成的可进行加密传输,身份认证的网络协议,较为安全;

3.HTTPS协议需要申请CA证书,一般要收费的;

HTTPS协议解决了以下问题:

1.主机信任问题:采用https 的server 必须从CA申请一个用于证明服务器用途类型的证书,改证书只有用于对应的server 的时候,客户才信任次主机;

2.通讯过程中的数据的泄密和被篡改问题;服务端和客户端之间的所有通讯,都是加密的,具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥;

由HTTP跳转到HTTPS方式:

APache版本
如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容:

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
如果对某个目录做强制跳转,则使用以下代码:
RewriteEngine on
RewriteBase /yourfolder
RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Nginx版本
在配置80端口的文件里面,写入以下内容即可。

server {
           listen       80;
           server_name  localhost;
          rewrite ^(.*)$ https://$host$1 permanent;    

           location / {
               root   html;
               index  index.html index.htm;
           }
PHP页面跳转:添加在网站php页面内

if ($_SERVER["HTTPS"] <> "on") 
{ 
$xredir="https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
header("Location: ".$xredir); 
}

单独页面通用代码段:较适合指定某一个子页单独https
在需要强制为https的页面上加入以下代码进行处理http-->https

<script language="JavaScript" type="text/JavaScript">
function redirect()
{  
  var loc = location.href.split(':');
  if(loc[0]=='http')
        {  
        location.href='https:'+loc[1];  
        }
}                      
οnlοad=redirect  
</script>
END
此博文内容从网络收集,以备学习所用!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值