# 21 Lua 與 http
[LuaSocket](http://w3.impa.br/~diego/software/luasocket/)是 Lua 的網絡模塊庫,它可以很方便地提供[TCP](http://zh.wikipedia.org/wiki/傳輸控制協議)、[UDP](http://zh.wikipedia.org/wiki/用戶數據報協議)、[DNS](http://zh.wikipedia.org/wiki/域名系統)、[FTP](https://zh.wikipedia.org/wiki/文件傳輸協議)、[HTTP](http://zh.wikipedia.org/wiki/超文本傳輸協議)、[SMTP](https://zh.wikipedia.org/wiki/簡單郵件傳輸協議)、[MIME](https://zh.wikipedia.org/wiki/MIME)等多種網絡協議的訪問操作。它由兩部分組成:一部分是用 C 寫的核心,提供對 TCP 和 UDP 傳輸層的訪問支持。另外一部分是用 Lua 寫的,負責應用功能的網絡接口處理。
## **安裝 LuaSocket**
```lua
luarocks install luasocket
```
## **LuaSocket 使用**
使用 LuaSocket 很簡單,直接用 require 函數加載進來就行,例如輸出一個 LuaSocket 版本信息:
```lua
local socket = require("socket")
print(socket._VERSION)
```
以socket.http方式獲取百度首頁
```lua
local http = require("socket.http")
local r,c = http.request("http://www.baidu.com/")
print("r="..r)
print("c="..c)--200
```
- 1 Lua介紹及環境
- 2 基本語法
- 3 數據類型
- 4 Lua 變量
- 5 循環
- 6 流程控制
- 7 函數
- 8 運算符
- 9 字符串
- 10 數組
- 11 迭代器
- 12 table
- 13 Lua 模塊與包
- 14 Lua 元表(Metatable)
- 14.1 元表案例
- 15 Lua 協同程序(coroutine)
- 16 Lua 文件IO
- 17 Lua 面向對象
- 17.1 類
- 17.2 繼承
- 17.3 封裝
- 18 Lua 與 Mysql
- 19 Lua 與 redis
- 20 Lua 與 JSON
- 21 Lua 與 http
- 22 Lua 與 Nginx
- 22.1 Nginx_Lua的安裝及環境
- 22.2 ngx_lua API(全表)
- 22.3 常用命令介紹
- 22 Lua 人工智能
- (1) Torch的安裝
- (2)Tensor
- Lua與C混合編程