HTTPリクエストの送信

Lua:
HTTPリクエストの送信

How to (やり方):

Luaでは、HTTPリクエストを送るためにsocket.httpluasocketモジュールを使うことが多いです。

local http = require("socket.http")
local body, code, headers, status = http.request("http://www.example.com")

if code == 200 then
    print(body)  -- サーバーの応答を出力
else
    print(status)  -- エラー情報を出力
end

サンプル出力:

<!doctype html>...

これはwww.example.comからHTMLを取得しています。

Deep Dive (深掘り):

HTTPリクエストの送信方法は、インターネットの初期からあります。socket.httpは基本的ですが、HTTP/1.1プロトコルの機能は全部サポートしていません。全機能が必要な場合は、lua-requestsluasocketライブラリのようなもっと進んだライブラリを使うことがあります。

これらのライブラリは内部でTCP/IP接続を管理し、HTTPプロトコルを通じてデータを送受信します。luasocketライブラリを使うと、HTTPSリクエストも送れますが、これには別途ssl.httpsモジュールが必要です。

See Also (関連情報):

  • LuaSocket公式サイト:http://w3.impa.br/~diego/software/luasocket/
  • LuaSec (HTTPSサポート):https://github.com/brunoos/luasec
  • lua-requests:https://github.com/JakobGreen/lua-requests (シンプルなHTTPライブラリ)