http协议 301和302的原理及实现
生活随笔
收集整理的這篇文章主要介紹了
http协议 301和302的原理及实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、來看看官方的說法:
301,302都是HTTP狀態的編碼,都代表著某個URL發生了轉移,不同之處在于:
301redirect:301代表永久性轉移(PermanentlyMoved)。
302redirect:302代表暫時性轉移(TemporarilyMoved)。
其實301、302的重定向都是通過對http協議的location的修改來實現的,那具體的怎么去修改location來實現重定向呢?
1.通過php的header函數去實現這個請求
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.baidu.com/");
?>
如圖:
如果寫成下面這樣,就是302了,與上圖對比一下
<?php
header("Location: http://www.baidu.com/");
?>
如圖:
也就是說,如果你在header函數內不標明的話,默認是302
重定向的原理:就是對http報文的location的修改(一般我們都是去web服務器上面做重定向操作的)
nginx有一個location指令,它可以修改http報文的location
咱們先看一張靜態頁面訪問如圖:
這里顯示200,并沒有出現location標簽和信息,此時我們可以在nginx中加入這么一句話(設置301的方法):
location ~ .html$ {
rewrite ^(.*).html$ $1.php permanent;
}
下面是設置302的方法:
location ~ .html$ {
rewrite ^(.*).html$ $1.php redirect;
}
總結
以上是生活随笔為你收集整理的http协议 301和302的原理及实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOS开发—segue几种模式的介绍以及
- 下一篇: 16进制转double dotnet_终