http請求流程
當用戶在瀏覽器的地址欄輸入地址以后會發生如下過程:web瀏覽器?web服務器,瀏覽器請求服務器,服務器響應瀏覽器
1.建立tcp連接
2.請求響應,web瀏覽器向web服務器發送請求命令,例如get等
3.web瀏覽器發送請求頭信息,發送請求響應以后還要發送一些其他的信息,之后瀏覽器會發送一行空白行來通知服務器,它結束了該頭信息的發送
4.發送正文(如果有正文)
5.web服務器應答.服務器接收到瀏覽器的請求以后發出應答,應答的第一部分是協議的版本號和應答狀態碼
6.web服務器發送應答信息,發送完以后會以一行空白行來表示頭信息到此結束,然后它以content-type應答頭信息所描述的格式發送用戶所請求的實際數據
7.web服務器向瀏覽器發送數據
8.web服務器關閉tcp連接
一般情況下一旦web服務器向瀏覽器發送了請求數據,他就要關閉tcp連接,但是如果瀏覽器或者服務器在發送頭信息時加入了這行代碼:connection:keep-alive那么tcp連接在發送后將仍然保持打開狀態,瀏覽器可以繼續通過相同的連接發送請求,節省連接所需的時間和網絡帶寬.
HTTPS和http模塊的應用
//引入模塊
var http = require("http")
//創建一個web服務的實例
var server = http.createServer( (req , res) => {
? ? //打印請求頭信息,會有兩個對象,因為有兩次請求,一個是請求圖標favicon.ico,一個是請求路徑"http://xxxxx"
? ? console.log(res.headers)
? ? //打印在瀏覽器輸入的地址
? ? console.log(req.url)
})