欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

從 http 到 https

現今大部分的網站都已經使用了 https 協(xié)議,這樣我們在網絡上進行沖浪時,基本也就無需擔心自己的隱私被竊取了。不過,稍微了解一點計算機網絡知識的人都明白,http 默認是 80 端口,https 默認是 443 端口。但是現在在網頁輸入網址訪問的人, 大部分都不會加 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ū)別在于匹配到網址后,出現了百度的 logo 圖標。所以,如果你想要真實的看到這種跳轉,你需要清空自己的瀏覽器瀏覽器歷史記錄(關于百度的瀏覽器歷史記錄)。

在這里插入圖片描述

實現自己的 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語言使用sort包對任意類型元素的集合進行排序的方法

    Go語言使用sort包對任意類型元素的集合進行排序的方法

    這篇文章主要介紹了Go語言使用sort包對任意類型元素的集合進行排序的方法,實例分析了sort排序所涉及的方法與相關的使用技巧,需要的朋友可以參考下
    2015-02-02
  • Golang filepath包常用函數詳解

    Golang filepath包常用函數詳解

    本文介紹與文件路徑相關包,該工具包位于path/filepath中,該包試圖與目標操作系統(tǒng)定義的文件路徑兼容。本文介紹一些常用函數,如獲取文件絕對路徑,獲取文件名或目錄名、遍歷文件、分割文件路徑、文件名模式匹配等函數,并給具體示例進行說明
    2023-02-02
  • 淺談Go語言的error類型

    淺談Go語言的error類型

    這篇文章主要介紹了淺談Go語言的error類型,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • golang高性能的http請求 fasthttp詳解

    golang高性能的http請求 fasthttp詳解

    fasthttp 是 Go 的快速 HTTP 實現,當前在 1M 并發(fā)的生產環(huán)境使用非常成功,可以從單個服務器進行 100K qps 的持續(xù)連接,總而言之,fasthttp 比 net/http 快 10 倍,下面通過本文給大家介紹golang fasthttp http請求的相關知識,一起看看吧
    2021-09-09
  • Golang常用的幾種密碼加密方式分享

    Golang常用的幾種密碼加密方式分享

    這篇文章給大家介紹了Golang常用的幾種密碼加密方式,加密有兩種方式,一種是直接加密,一種是鹽值加密,直接加密指的是將原始密碼直接進行加密,鹽值加密則是在進行密碼加密之前,文中有詳細的代碼示例,需要的朋友可以參考下
    2023-08-08
  • 對Golang中的runtime.Caller使用說明

    對Golang中的runtime.Caller使用說明

    這篇文章主要介紹了對Golang中的runtime.Caller使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 優(yōu)雅管理Go?Project生命周期

    優(yōu)雅管理Go?Project生命周期

    這篇文章主要為大家介紹了如何優(yōu)雅的管理Go?Project生命周期,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Golang中的強大Web框架Fiber詳解

    Golang中的強大Web框架Fiber詳解

    在不斷發(fā)展的Web開發(fā)領域中,選擇正確的框架可以極大地影響項目的效率和成功,介紹一下Fiber,這是一款令人印象深刻的Golang(Go語言)Web框架,在本文中,我們將深入了解Fiber的世界,探討其獨特的特性,并理解為什么它在Go生態(tài)系統(tǒng)中引起了如此大的關注
    2023-10-10
  • golang中的defer函數理解

    golang中的defer函數理解

    defer是Go語言中的延遲執(zhí)行語句,用來添加函數結束時執(zhí)行的代碼,常用于釋放某些已分配的資源、關閉數據庫連接、斷開socket連接、解鎖一個加鎖的資源,這篇文章主要介紹了golang中的defer函數理解,需要的朋友可以參考下
    2022-10-10
  • golang 隨機數的兩種方式

    golang 隨機數的兩種方式

    本文主要介紹了golang 隨機數的兩種方式,一種是偽隨機,另一種是真隨機,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07

最新評論