亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

從 http 到 https

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

讓我們來看一個(gè),日常生活中使用最廣泛的網(wǎng)站的例子吧!

在這里插入圖片描述

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

瀏覽器調(diào)試

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

在這里插入圖片描述

在這里插入圖片描述

注意,下面這樣訪問是錯(cuò)誤的。 如果你調(diào)試的話,你也只能看到一個(gè) www.baidu.com 的網(wǎng)站。因?yàn)橹霸L問過了,瀏覽器會(huì)記住你訪問過的網(wǎng)址的,這里的區(qū)別在于匹配到網(wǎng)址后,出現(xiàn)了百度的 logo 圖標(biāo)。所以,如果你想要真實(shí)的看到這種跳轉(zhuǎn),你需要清空自己的瀏覽器瀏覽器歷史記錄(關(guān)于百度的瀏覽器歷史記錄)。

在這里插入圖片描述

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

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

網(wǎng)上有很多訪問生成自簽名的 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 端口,并把請(qǐng)求重定向到 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 端口,提供實(shí)際的服務(wù)
	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!"))
	})

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

在這里插入圖片描述

因?yàn)槭亲院灻C書,不是正統(tǒng) CA 機(jī)構(gòu)簽發(fā)的,所以這里是有警告的。不過這與我們所有說明的過程無關(guān),忽視就好了。這是一個(gè)很小的細(xì)節(jié)問題,其實(shí)理解它挺簡(jiǎn)單的,只需要一點(diǎn)點(diǎn)計(jì)算機(jī)網(wǎng)絡(luò)的知識(shí)就足夠了。

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

相關(guān)文章

  • Go語言使用sort包對(duì)任意類型元素的集合進(jìn)行排序的方法

    Go語言使用sort包對(duì)任意類型元素的集合進(jìn)行排序的方法

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

    Golang filepath包常用函數(shù)詳解

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

    淺談Go語言的error類型

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

    golang高性能的http請(qǐng)求 fasthttp詳解

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

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

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

    對(duì)Golang中的runtime.Caller使用說明

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

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

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

    Golang中的強(qiáng)大Web框架Fiber詳解

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

    golang中的defer函數(shù)理解

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

    golang 隨機(jī)數(shù)的兩種方式

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

最新評(píng)論