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
此博文内容从网络收集,以备学习所用!