HTTP那些小事

2021-09-11 13:32:59 字數 3660 閱讀 4664

這是一篇資訊整理文章,可以當作工具來看

http全稱是超文字傳輸協議,構建於tcp之上,屬於應用層協議。

請求或響應在傳輸途中,遭攻擊者攔截並篡改內容的攻擊被稱為中間人攻擊(man-in-the-middle attack,mitm)

https是在通訊介面部分用 tls(transport layer security)協議。

https 協議的主要功能基本都依賴於 tls/ssl 協議,tls/ssl 的功能實現主要依賴於三類基本演算法:雜湊函式 、對稱加密和非對稱加密,其利用非對稱加密實現身份認證和金鑰協商,對稱加密演算法採用協商的金鑰對資料加密,基於雜湊函式驗證資訊的完整性。

結合三類演算法的特點,tls 的基本工作方式是

在創業https伺服器之前,伺服器首先需要建立公鑰、私鑰及證書,步驟如下

openssl genrsa -out privatekey.pem 1024

複製**

openssl req -new -key privatekey.pem -out certrequest.csr

複製**

證書應該是乙個經過證書授證中心簽名的檔案,該證書檔案內包含了伺服器端提供的公鑰以及證書的辦法機構等資訊。

openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

複製**

在具備了證書檔案後,可以使用該證書檔案建立乙個pfx檔案。 所謂pfx檔案,是指該檔案內容必須符合公鑰加密技術12號標準。

openssl pkcs12 -export -in certificate.pem -inkey privatekey.pem -out certificate.pfx

複製**

https.createserver(options,[requestlistener]);

複製**

let https = require('https');

複製**

在https模組中,可以使用request方法向其它使用https協議的**請求資料

複製**

let https = require('https');

複製**

首部字段

協商型別

狀態碼負責表示客戶端請求的返回結果、標記伺服器端是否正常、通知出現的錯誤

類別 原因短語

首部欄位名

說明cache-control

控制快取行為

connection

鏈結的管理

date

報文日期

pragma

報文指令

trailer

報文尾部的首部

trasfer-encoding

指定報文主體的傳輸編碼方式

upgrade

公升級為其他協議

via**伺服器資訊

warning

錯誤通知

首部欄位名

說明accept

使用者**可處理的**型別

accept-charset

優先的字符集

accept-encoding

優先的編碼

accept-langulage

優先的語言

authorization

web認證資訊

expect

期待伺服器的特定行為

from

使用者的電子郵箱位址

host

請求資源所在的伺服器

if-match

比較實體標記

if-modified-since

比較資源的更新時間

if-none-match

比較實體標記

if-range

資源未更新時傳送實體byte的範圍請求

if-unmodified-since

比較資源的更新時間(和if-modified-since相反)

max-forwards

最大傳輸跳數

proxy-authorization

**伺服器需要客戶端認證

range

實體位元組範圍請求

referer

請求中的uri的原始獲取方

te傳輸編碼的優先順序

user-agent

http客戶端程式的資訊

首部欄位名

說明accept-ranges

是否接受位元組範圍

age資源的建立時間

etag

資源的匹配資訊

location

客戶端重定向至指定的uri

proxy-authenticate

**伺服器對客戶端的認證資訊

retry-after

再次傳送請求的時機

server

伺服器的資訊

vary

**伺服器快取的管理資訊

www-authenticate

伺服器對客戶端的認證

首部欄位名

說明allow

資源可支援的http方法

content-encoding

實體的編碼方式

content-language

實體的自然語言

content-length

實體的內容大小(位元組為單位)

content-location

替代對應資源的uri

content-md5

實體的報文摘要

content-range

實體的位置範圍

content-type

實體主體的**型別

expires

實體過期時間

last-modified

資源的最後修改時間

const的那些小事

關於const 為什麼需要const?請看以下語句 for int index 0 index 512 index 在此語句中有兩個問題 1 512這個常量含義不明確,也並不清楚index與512比較有什麼作用 2 假如在程式中多次使用到512這個常量時,在後來的工作需要把512改為111的話修改的...

談談React那些小事

而對於react的開發者來說,如何利用react構建現代化的前端專案,產出高質量的前端 才是學習react的重點。所以本文就我自己平時利用react開發專案的經驗和個人見解,來談談在react專案中需要了解和容易忽略的 小事 俗話說 千里之堤毀於蟻穴 在react開發中我們不能忙於進度而忽視了細節。...

談談React那些小事

說起react,那也是近一年多時間火起來的前端框架,其在facebook的影響力和大力推廣下,已然成為目前前端界的中流砥柱。在如今的前端框架界,react vue angular三分天下的時代已經到來,而曾經jquery一統天下的局面已一去不復返。而對於react的開發者來說,如何利用react構建...