# 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混合编程