使用 Golang 打造 Web 應用程式
  • Introduction
  • Go 環境配置
    • Go 安裝
    • GOPATH 與工作空間
    • Go 命令
    • Go 開發工具
    • 小結
  • Go 語言基礎
    • 你好,Go
    • Go 基礎
    • 流程和函式
    • struct
    • 物件導向
    • interface
    • 併發
    • 小結
  • Web 基礎
    • web 工作方式
    • Go 建立一個簡單的 web 服務
    • Go 如何使得 web 工作
    • Go 的 http 套件詳解
    • 小結
  • 表單
    • 處理表單的輸入
    • 驗證表單的輸入
    • 預防跨站指令碼
    • 防止多次提交表單
    • 處理檔案上傳
    • 小結
  • 存取資料庫
    • database/sql 介面
    • 使用 MySQL 資料庫
    • 使用 SQLite 資料庫
    • 使用 PostgreSQL 資料庫
    • 使用 beedb 函式庫進行 ORM 開發
    • NoSQL 資料庫操作
    • 小結
  • session 和資料儲存
    • session 和 cookie
    • Go 如何使用 session
    • session 儲存
    • 預防 session 劫持
    • 小結
  • 文字檔案處理
    • XML 處理
    • JSON 處理
    • 正則處理
    • 範本處理
    • 檔案操作
    • 字串處理
    • 小結
  • Web 服務
    • Socket 程式設計
    • WebSocket
    • REST
    • RPC
    • 小結
  • 安全與加密
    • 預防 CSRF 攻擊
    • 確保輸入過濾
    • 避免 XSS 攻擊
    • 避免 SQL 注入
    • 儲存密碼
    • 加密和解密資料
    • 小結
  • 國際化和本地化
    • 設定預設地區
    • 本地化資源
    • 國際化站點
    • 小結
  • 錯誤處理,除錯和測試
    • 錯誤處理
    • 使用 GDB 除錯
    • Go 怎麼寫測試案例
    • 小結
  • 部署與維護
    • 應用日誌
    • 網站錯誤處理
    • 應用部署
    • 備份和還原
    • 小結
  • 如何設計一個 Web 框架
    • 專案規劃
    • 自訂路由器設計
    • controller 設計
    • 日誌和配置設計
    • 實現部落格的增刪改
    • 小結
  • 擴充套件 Web 框架
    • 靜態檔案支援
    • Session 支援
    • 表單支援
    • 使用者認證
    • 多語言支援
    • pprof 支援
    • 小結
  • 參考資料
Powered by GitBook
On this page
  • 目錄
  • links

Was this helpful?

Web 服務

Previous小結NextSocket 程式設計

Last updated 4 years ago

Was this helpful?

Web 服務可以讓你在 HTTP 協議的基礎上透過 XML 或者 JSON 來交換資訊。如果你想知道上海的天氣預報、中國石油的股價或者淘寶商家的一個商品資訊,你可以編寫一段簡短的程式碼,透過抓取這些資訊然後透過標準的介面開放出來,就如同你呼叫一個本地函式並回傳一個值。

Web 服務背後的關鍵在於平臺的無關性,你可以執行你的服務在 Linux 系統,可以與其他 Windows 的 asp.net 程式互動,同樣的,也可以透過同一個介面和執行在 FreeBSD 上面的 JSP 無障礙地通訊。

目前主流的有如下幾種 Web 服務:REST、SOAP。

REST 請求是很直觀的,因為 REST 是基於 HTTP 協議的一個補充,他的每一次請求都是一個 HTTP 請求,然後根據不同的 method 來處理不同的邏輯,很多 Web 開發者都熟悉 HTTP 協議,所以學習 REST 是一件比較容易的事情。所以我們在 8.3 小節將詳細的講解如何在 Go 語言中來實現 REST 方式。

SOAP 是 W3C 在跨網路資訊傳遞和遠端計算機函式呼叫方面的一個標準。但是 SOAP 非常複雜,其完整的規範篇幅很長,而且內容仍然在增加。Go 語言是以簡單著稱,所以我們不會介紹 SOAP 這樣複雜的東西。而 Go 語言提供了一種天生效能很不錯,開發起來很方便的 RPC 機制,我們將會在 8.4 小節詳細介紹如何使用 Go 語言來實現 RPC。

Go 語言是 21 世紀的 C 語言,我們追求的是效能、簡單,所以我們在 8.1 小節裡面介紹如何使用 Socket 程式設計,很多遊戲服務都是採用 Socket 來編寫伺服器端,因為 HTTP 協議相對而言比較耗費效能,讓我們看看 Go 語言如何來 Socket 程式設計。目前隨著 HTML5 的發展,webSockets 也逐漸的成為很多頁遊公司接下來開發的一些手段,我們將在 8.2 小節裡面講解 Go 語言如何編寫 webSockets 的程式碼。

目錄

links

上一章:

下一節:

目錄
第七章總結
Socket 程式設計