15.蛤蟆筆記go語言——Web編程概念

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

15.蛤蟆筆記go語言——Web編程概念

Go目前已經擁有了成熟的Http處理包,這使得編寫能做任何事情的動態Web程式易如反掌。

Web原理

瀏覽器本身是一個用戶端,當你輸入URL的時候,首先瀏覽器會去請求DNS伺服器,通過DNS擷取相應的網域名稱對應的IP,然後通過IP地址找到IP對應的伺服器後,要求建立TCP串連,等瀏覽器發送完HTTP Request(請求)包後,伺服器接收到請求包之後才開始處理請求包,伺服器調用自身服務,返回HTTP Response(響應)包;用戶端收到來自伺服器的響應後開始渲染這個Response包裡的主體(body),等收到全部的內容隨後斷開與該伺服器之間的TCP串連。

概念

URL(Uniform Resource Locator)是“統一資源定位器”的英文縮寫,用於描述一個網路上的資源, 基本格式如下

schema://host[:port#]/path/.../[?query-string][#anchor]

scheme         指定低層使用的協議(例如:http,https, ftp)

host          HTTP伺服器的IP地址或者網域名稱

port#          HTTP伺服器的預設連接埠是80,這種情況下連接埠號碼可以省略。如果使用了別的連接埠,必須指  明,例如http://www.cnblogs.com:8080/

path           訪問資源的路徑

query-string   發送給http伺服器的資料

anchor         錨

HTTP協議詳解

HTTP協議是Web工作的核心,所以要瞭解清楚Web的工作方式就需要詳細的瞭解清楚HTTP是怎麼樣工作的。

HTTP是一種讓Web伺服器與瀏覽器(用戶端)通過Internet發送與接收資料的協議,它建立在TCP協議之上,一般採用TCP的80連接埠。它是一個請求、響應協議--用戶端發出一個請求,伺服器響應這個請求。在HTTP中,用戶端總是通過建立一個串連與發送一個HTTP請求來發起一個事務。伺服器不能主動去與用戶端聯絡,也不能給用戶端發出一個回調串連。用戶端與伺服器端都可以提前中斷一個串連。例如,當瀏覽器下載一個檔案時,你可以通過點擊“停止”鍵來中斷檔案的下載,關閉與伺服器的HTTP串連。

HTTP協議是無狀態的,同一個用戶端的這次請求和上次請求是沒有對應關係,對HTTP伺服器來說,它並不知道這兩個請求是否來自同一個用戶端。為瞭解決這個問題, Web程式引入了Cookie機制來維護串連的可持續狀態。

HTTP協議是建立在TCP協議之上的,因此TCP攻擊一樣會影響HTTP的通訊,例如比較常見的一些攻擊:SYN Flood是當前最流行的DoS(拒絕服務的攻擊)與DdoS(分散式阻斷服務攻擊)的方式之一,這是一種利用TCP協議缺陷,發送大量偽造的TCP串連請求,從而使得被攻擊方資源耗盡(CPU滿負荷或記憶體不足)的攻擊方式。

HTTP協議定義了很多與伺服器互動的要求方法,最基本的有4種,分別是GET,POST,PUT,DELETE. 一個URL地址用於描述一個網路上的資源,而HTTP中的GET, POST, PUT, DELETE就對應著對這個資源的查,改,增,刪4個操作。

HTTP請求包

Request包的結構, Request包分為3部分,第一部分叫Requestline(請求行), 第二部分叫Request header(要求標頭),第三部分是body(主體)。

HTTP響應包

Response包中的第一行叫做狀態行,由HTTP協議版本號碼, 狀態代碼, 狀態訊息 三部分組成。

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.