기본 인증을 사용한 HTTP 요청 보내기

Lua:
기본 인증을 사용한 HTTP 요청 보내기

How to: (방법)

local http = require("socket.http")
local ltn12 = require("ltn12")

-- 사용자 이름과 비밀번호 설정
local username = "your_username"
local password = "your_password"

-- 기본 인증 헤더 생성
local auth_header = "Basic " .. (username .. ":" .. password):gsub("\n", "")

local response_body = {}

-- HTTP 요청
local res, code, response_headers = http.request{
  url = "http://yourserver.com/data",
  method = "GET",
  headers = {
    ["Authorization"] = auth_header
  },
  sink = ltn12.sink.table(response_body)
}

-- 응답 확인
if code == 200 then
  print(table.concat(response_body))
else
  print("Error: " .. (code or "no response"))
end

예상 출력:

{"data": "some secure data"}

Deep Dive (심층 탐구)

HTTP 기본 인증은 RFC 7617에 정의된 오래된 프로토콜입니다. 요청 데이터가 암호화되지 않으므로 HTTPS와 함께 사용할 때 더 안전합니다. 인증에 더 안전한 OAuth와 같은 대체 수단들이 존재하며, 예를 들면 API 키를 사용한 방식 등이 있습니다. Lua에서는 socket.http 라이브러리를 많이 사용하는데, lua-requestsLuaSec와 함께 사용해 SSL/TLS를 지원하는 HTTPS 요청도 가능합니다.

See Also (참고자료)