最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談一下前端http與https有什么區(qū)別

 更新時間:2023年04月06日 08:38:54   作者:CrazyDragon_King  
這篇文章主要介紹了淺談一下前端http與https有什么區(qū)別,現(xiàn)今大部分的網站都已經使用了 https 協(xié)議,那么https對比http協(xié)議有哪些不同呢,需要的朋友可以參考下

從 http 到 https

現(xiàn)今大部分的網站都已經使用了 https 協(xié)議,這樣我們在網絡上進行沖浪時,基本也就無需擔心自己的隱私被竊取了。不過,稍微了解一點計算機網絡知識的人都明白,http 默認是 80 端口,https 默認是 443 端口。但是現(xiàn)在在網頁輸入網址訪問的人, 大部分都不會加 http://,因此默認訪問的是 http 協(xié)議,那么為什么大家還能繼續(xù)訪問 https 協(xié)議呢?因為這些網站都做了一個跳轉,訪問 80 端口會被自動重定向到 443 端口(即 http -> https)。

讓我們來看一個,日常生活中使用最廣泛的網站的例子吧!

在這里插入圖片描述

注意到了嗎?我并沒有輸入協(xié)議,所以瀏覽器默認是會訪問 http 網站的,但是最終的結果是訪問了 https 網站。我前面說了這是做了跳轉,但是這種說法是很模糊的,你并不知道實際上是使用了什么技術?作為一個有點技術追求的人,讓我們來一探究竟吧!
或者你可以先猜測一下:這里使用的技術是 請求轉發(fā) Request Forward 還是 重定向 Redirect 呢?

瀏覽器調試

直接上瀏覽器調試,這樣最清楚了。可以看到這里會有兩個 www.baidu.com,直接看第一個前面問題的答案就已經出來了,是重定向 Redirect。

在這里插入圖片描述

在這里插入圖片描述

注意,下面這樣訪問是錯誤的。 如果你調試的話,你也只能看到一個 www.baidu.com 的網站。因為之前訪問過了,瀏覽器會記住你訪問過的網址的,這里的區(qū)別在于匹配到網址后,出現(xiàn)了百度的 logo 圖標。所以,如果你想要真實的看到這種跳轉,你需要清空自己的瀏覽器瀏覽器歷史記錄(關于百度的瀏覽器歷史記錄)。

在這里插入圖片描述

實現(xiàn)自己的 http 到 https 的重定向

既然已經了解了前面的內容,那么我們就可以把這個方式給簡單的應用上了。這里大致的思路是:監(jiān)聽兩個端口,一個是端口提供 http 服務(只有一個根路徑),一個提供 https 服務(正常的應用服務路徑),然后如果有人訪問了 http 的根路徑,那么將其轉發(fā)到 https 服務的根路徑上即可。

網上有很多訪問生成自簽名的 CA 證書,這里就不多做介紹了,那么接下來直接看代碼吧!

package main

import (
	"log"
	"net/http"
)

var (
	CertFile = "C:/Users/alfred/Desktop/ssl/server.cer"
	KeyFile  = "C:/Users/alfred/Desktop/ssl/server.key"
)

func main() {
	go ListenHttp()
	go ListenHttps()
	select {}
}

func ListenHttp() {
	// 監(jiān)聽 http 端口,并把請求重定向到 https 端口
	httpServer := http.NewServeMux()
	httpServer.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		log.Printf("http --> https")
		http.Redirect(w, r, "https://localhost:10000", http.StatusPermanentRedirect)
	})

	err := http.ListenAndServe(":9999", httpServer)
	if err != nil {
		log.Fatal(err)
	}
}

func ListenHttps() {
	// 監(jiān)聽 https 端口,提供實際的服務
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		w.Write([]byte("Welcome to SSL World!"))
	})

	http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
		w.Write([]byte("Hello Https World!"))
	})

	// 本機自簽名證書,僅演示使用
	err := http.ListenAndServeTLS(":10000", CertFile, KeyFile, nil)
	if err != nil {
		log.Fatal(err)
	}
}

在這里插入圖片描述

因為是自簽名證書,不是正統(tǒng) CA 機構簽發(fā)的,所以這里是有警告的。不過這與我們所有說明的過程無關,忽視就好了。這是一個很小的細節(jié)問題,其實理解它挺簡單的,只需要一點點計算機網絡的知識就足夠了。

到此這篇關于淺談一下前端http與https有什么區(qū)別的文章就介紹到這了,更多相關http與https區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Go字符串操作深入解析

    Go字符串操作深入解析

    這篇文章主要為大家介紹了Go字符串操作深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 一文詳解Go語言中對象池的正確打開方式

    一文詳解Go語言中對象池的正確打開方式

    對象池是一種設計模式,它維護一組已經創(chuàng)建好的對象,當需要使用對象時,直接從對象池中獲取,使用完畢后再放回對象池,而不是頻繁地創(chuàng)建和銷毀對象,下面我們就來看看Go語言中對象池的具體使用吧
    2025-02-02
  • 云端golang開發(fā),無需本地配置,能上網就能開發(fā)和運行

    云端golang開發(fā),無需本地配置,能上網就能開發(fā)和運行

    這篇文章主要介紹了云端golang開發(fā),無需本地配置,能上網就能開發(fā)和運行的相關資料,需要的朋友可以參考下
    2023-10-10
  • 詳解golang 模板(template)的常用基本語法

    詳解golang 模板(template)的常用基本語法

    這篇文章主要介紹了詳解golang 模板(template)的常用基本語法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • golang?syscall?三種加載DLL方式小結

    golang?syscall?三種加載DLL方式小結

    本文主要介紹了golang?syscall?三種加載DLL方式小結,包括MustLoadDLL、NewLazyDLL和LoadDLL,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • Go+Redis實現(xiàn)延遲隊列實操

    Go+Redis實現(xiàn)延遲隊列實操

    這篇文章主要介紹了Go+Redis實現(xiàn)延遲隊列實操,延遲隊列是一種非常使用的數據結構,我們經常有需要延遲推送處理消息的場景,比如延遲60秒發(fā)送短信,延遲30分鐘關閉訂單,消息消費失敗延遲重試等
    2022-09-09
  • golang實現(xiàn)ftp實時傳輸文件的案例

    golang實現(xiàn)ftp實時傳輸文件的案例

    這篇文章主要介紹了golang實現(xiàn)ftp實時傳輸文件的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 基于go-cqhttp與Flask搭建定制機器人項目實戰(zhàn)示例

    基于go-cqhttp與Flask搭建定制機器人項目實戰(zhàn)示例

    這篇文章主要為大家介紹了基于go-cqhttp與Flask搭建定制機器人項目實戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 一文詳解GO如何實現(xiàn)Redis的AOF持久化

    一文詳解GO如何實現(xiàn)Redis的AOF持久化

    這篇文章主要為大家詳細介紹了GO如何實現(xiàn)Redis的AOF持久化的,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • 對Golang import 導入包語法詳解

    對Golang import 導入包語法詳解

    今天小編就為大家分享一篇對Golang import 導入包語法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論

定南县| 祁阳县| 政和县| 阿拉善右旗| 革吉县| 日喀则市| 武邑县| 嘉禾县| 磐安县| 麻江县| 灵石县| 水富县| 南川市| 拉孜县| 新巴尔虎左旗| 慈利县| 宁陕县| 信宜市| 长治县| 杭锦旗| 金川县| 扬中市| 北碚区| 昭通市| 瓮安县| 黑水县| 天长市| 宣城市| 明水县| 交城县| 怀远县| 克什克腾旗| 息烽县| 南雄市| 翼城县| 娱乐| 长葛市| 神池县| 冷水江市| 松江区| 彭州市|