Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产成人综合网在线播放,艹逼视频免费观看,中文字幕视频一区

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          http簡介并用go實現

          .HTTP協議簡介

          超文本傳輸協議(英文:HyperText Transfer Protocol,縮寫:HTTP)是一種用于分布式、協作式和超媒體信息系統的應用層協議。

          就是常用的瀏覽器和服務器通信協議. 將tcp進行封裝后的一種應用層協議.

          2.HTTP工作原理

          HTTP協議定義Web客戶端如何從Web服務器請求Web頁面,以及服務器如何把Web頁面傳送給客戶端。HTTP協議采用了請求/響應模型??蛻舳讼蚍掌靼l送一個請求報文,請求報文包含請求的方法、URL、協議版本、請求頭部和請求數據。服務器以一個狀態行作為響應,響應的內容包括協議的版本、成功或者錯誤代碼、服務器信息、響應頭部和響應數據。

          以下是 HTTP 請求/響應的步驟:

          1. 客戶端連接到Web服務器
            一個HTTP客戶端,通常是瀏覽器,與Web服務器的HTTP端口(默認為80)建立一個TCP套接字連接。例如,http://www.baidu.com。 默認80端口是不顯示的, 否則需要在域名后加入端口號.
          2. 發送HTTP請求
            通過TCP套接字,客戶端向Web服務器發送一個文本的請求報文,一個請求報文由請求行、請求頭部、空行和請求數據4部分組成。
          3. 服務器接受請求并返回HTTP響應
            Web服務器解析請求,定位請求資源。服務器將資源復本寫到TCP套接字,由客戶端讀取。一個響應由狀態行、響應頭部、空行和響應數據4部分組成。
          4. 釋放連接TCP連接
            若connection 模式為close,則服務器主動關閉TCP連接,客戶端被動關閉連接,釋放TCP連接;若connection 模式為keepalive,則該連接會保持一段時間,在該時間內可以繼續接收請求;
          5. 客戶端瀏覽器解析HTML內容
            客戶端瀏覽器首先解析狀態行,查看表明請求是否成功的狀態代碼。然后解析每一個響應頭,響應頭告知以下為若干字節的HTML文檔和文檔的字符集。客戶端瀏覽器讀取響應數據HTML,根據HTML的語法對其進行格式化,并在瀏覽器窗口中顯示。

          例如:在瀏覽器地址欄鍵入URL,按下回車之后會經歷以下流程:

          1. 瀏覽器向 DNS 服務器請求解析該 URL 中的域名所對應的 IP 地址;
          2. 解析出 IP 地址后,根據該 IP 地址和默認端口 80,和服務器建立TCP連接;
          3. 瀏覽器發出讀取文件(URL 中域名后面部分對應的文件)的HTTP 請求,該請求報文作為 TCP 三次握手的第三個報文的數據發送給服務器;
          4. 服務器對瀏覽器請求作出響應,并把對應的 html 文本發送給瀏覽器;
          5. 釋放 TCP連接;
          6. 瀏覽器將該 html 文本解析并顯示對應格式的內容;

          3.HTTP請求方法

          HTTP/1.1協議中共定義了八種方法來以不同方式操作指定的資源:

          GET

          向指定的資源發出“顯示”請求。使用GET方法應該只用在讀取數據,而不應當被用于產生“副作用”的操作中,例如在Web Application中。其中一個原因是GET可能會被網絡蜘蛛等隨意訪問。

          HEAD

          與GET方法一樣,都是向服務器發出指定資源的請求。只不過服務器將不傳回資源的本文部分。它的好處在于,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中“關于該資源的信息”(元信息或稱元數據)。

          POST

          向指定資源提交數據,請求服務器進行處理(例如提交表單或者上傳文件)。數據被包含在請求本文中。這個請求可能會創建新的資源或修改現有資源,或二者皆有。

          PUT

          向指定資源位置上傳其最新內容。

          DELETE

          請求服務器刪除Request-URI所標識的資源。

          TRACE

          回顯服務器收到的請求,主要用于測試或診斷。

          OPTIONS

          這個方法可使服務器傳回該資源所支持的所有HTTP請求方法。用’*'來代替資源名稱,向Web服務器發送OPTIONS請求,可以測試服務器功能是否正常運作。

          CONNECT

          HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。通常用于SSL加密服務器的鏈接(經由非加密的HTTP代理服務器)。

          4.HTTP請求格式

          5.HTTP響應格式


          6.HTTP路由轉發

          路由是處理url和函數關系的程序,配置一系列的url訪問規則,提供對應url訪問的模板.在go的原生net/http包中,瀏覽器發起http請求(post,get等請求),到服務器中,服務器根據發送的url查找對應的出來程序,此查找程序為路程轉發程序.

          7.HTTP狀態碼

          所有HTTP響應的第一行都是狀態行,依次是當前HTTP版本號,3位數字組成的狀態代碼,以及描述狀態的短語,彼此由空格分隔。

          狀態代碼的第一個數字代表當前響應的類型:

          • 1xx消息——請求已被服務器接收,繼續處理
          • 2xx成功——請求已成功被服務器接收、理解、并接受
          • 3xx重定向——需要后續操作才能完成這一請求
          • 4xx請求錯誤——請求含有詞法錯誤或者無法被執行
          • 5xx服務器錯誤——服務器在處理某個正確請求時發生錯誤

          有些是已經定義好的,比如200, 404等常見狀態碼,開發者也可以自行定義.

          8.一個簡單的HTTP服務器

          package main
           
          import (
              "fmt"
              "net/http"
          )
           
          func IndexHandler(w http.ResponseWriter, r *http.Request) {
              fmt.Fprintln(w, "hello world")
          }
           
          func main() {
              http.HandleFunc("/", IndexHandler)
              http.ListenAndServe("127.0.0.0:8000", nil)
          }
          123456789101112131415

          上述代碼中分析請求格式如下圖所示:

          可以看到上圖,請求頭,響應頭,請求方法為GET, 響應狀態碼為200.

          Content-Type: 傳輸的媒體類型.

          Content-Length: HTTP消息長度.

          等字段內容龐大,后續專門開一貼介紹.

          9.HTTP和MYSQL實現登錄功能

          一個簡單的登錄頁面,用戶登錄時填寫的賬號密碼從數據庫中讀出,并做對比

          index.html: 主頁顯示內容

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>index</title>
          </head>
          <body>
          歡迎訪問golang搭建的HttpServer
          </body>
          </html>
          12345678910

          login.html: 登錄頁面

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>用戶登錄</title>
          </head>
          <body>
          <form action="/loginForm" method="post">
              <span>{{.}}</span>
              username:<input type="text" name="username"/><br/>
              password:<input type="password" name="password"/><br/>
              <input type="submit" value="登錄"/>  
              <input type="reset" value="重置"/>
          </form>
          </body>
          </html>
          12345678910111213141516

          success.html: 登錄成功頁面

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>首頁</title>
          </head>
          <body>
          歡迎訪問golang搭建的HttpServer
          </body>
          </html>
          12345678910

          main.go: 服務器主程序

          森林導航:http://www.xsldh6.com/
          NiceTool.net 好工具網:http://www.nicetool.net/

          品|開源中國

          文|御坂弟弟

          TypeScript 官方宣布,其網站采用了一個新的主頁,以更好地向用戶介紹 TypeScript。

          文中,官方表示以前的主頁存在諸多問題,比如網站頂部沒有明顯的號召性用語、使用了太多解釋概念的文字、網站各個部分之間視覺重量同以至于缺乏重點、沒有足夠的代碼示例。最后,其對網站用戶進行了 A/B 測試,看看是否有新用戶喜歡主頁,但結果基本是各占一半。因此新主頁進行了以下改動:

          • 減少頁面上的文本量,并且每個部分現在都有加粗的關鍵信息。

          • 將調色板限制為來自 TypeScript 徽標的藍色以及白色和黑色的陰影。

          • 創建一個中間導航點,以方便用戶在文檔、編輯器或教程之間跳轉。

          • 用頁面末尾的跳轉點替換頁腳內容,使用相同的鏈接,但調整了設計以適應頁腳。

          • 開始關注開發人員使用 TypeScript 的體驗。

          與之前的主頁一樣,新主頁通過了定期可訪問性審核,可以在禁用 JavaScript 的情況下使用,并且可以完全通過鍵盤進行導航。感興趣的用戶可以前往體驗。


          主站蜘蛛池模板: 亚洲国产专区一区| 无码人妻久久一区二区三区免费| 国精产品一区一区三区免费视频 | 亚洲色精品aⅴ一区区三区| 精品人无码一区二区三区| 精品一区二区三区波多野结衣| 无码精品一区二区三区在线| 国产福利电影一区二区三区久久老子无码午夜伦不 | 亚洲一区二区三区久久久久| 亚洲日本中文字幕一区二区三区 | 亚洲一区欧洲一区| 欧美人妻一区黄a片| 精品人妻AV一区二区三区| 麻豆精品人妻一区二区三区蜜桃| 成人免费一区二区无码视频| 3d动漫精品一区视频在线观看| 国产99视频精品一区| 无码乱人伦一区二区亚洲| 无码av免费一区二区三区试看 | 天堂一区二区三区精品| 濑亚美莉在线视频一区| 中文字幕日韩丝袜一区| 国产精品538一区二区在线| 久久青青草原一区二区| 国产免费一区二区三区免费视频| 在线精品动漫一区二区无广告 | 香蕉久久AⅤ一区二区三区| 国产一区二区影院| 538国产精品一区二区在线| 亚洲日本一区二区三区在线不卡 | 日韩一区二区三区在线| 日韩视频一区二区在线观看| 精品国产亚洲第一区二区三区| 中文字幕一区二区三区四区| 91国在线啪精品一区| 日本在线不卡一区| 亚洲AV日韩综合一区尤物| 色一情一乱一区二区三区啪啪高| 亚洲综合av永久无码精品一区二区| 精品亚洲AV无码一区二区三区| 国产伦精品一区二区三区免费下载 |