본문으로 건너뛰기

HEAD 요청 보내기 (http.head)

선언

HTTP 상태 코드, 응답 헤더 JSON 텍스트 = http.head(URL [, 제한 시간(), 요청 헤더, URL ESCAPE 안 함 ])

선언(이름 있는 인수)

20250625부터 지원하며, 진행률 인수는 20260402 이후 버전에서 지원합니다.

HTTP 상태 코드, 응답 헤더 JSON 텍스트 = http.head{
url = URL;
timeout = 제한 시간();
headers = 요청 헤더;
params = Query 인수;
progress = 진행률 콜백 함수;
progress_interval_ms = 진행률 콜백 간격(밀리초);
}

매개변수

  • URL
    문자열. 요청할 URL 주소입니다. 이 메서드는 기본적으로 URL을 escape 처리합니다. 필요하지 않으면 URL ESCAPE 안 함 인수 설명을 참조하십시오.
  • 제한 시간(초)
    실수, 선택 사항. 요청 제한 시간이며 단위는 초, 기본값은 10입니다.
  • 요청 헤더
    테이블, 선택 사항. 전송할 요청의 헤더 정보이며 형식은 {field1 = value1, field2 = value2, ...}, 기본값은 {}입니다.
  • Query 인수
    테이블, 선택 사항. 전송할 요청의 Query 인수이며 형식은 {field1 = value1, field2 = value2, ...}, 기본값은 {}입니다.
  • 진행률 콜백 함수
    함수, 선택 사항. 20260402 이후 버전에서 지원합니다. 요청 진행률이 바뀔 때 호출되며 콜백 함수의 첫 번째 인수는 현재 진행률 정보입니다.
  • 진행률 콜백 간격(밀리초)
    정수, 선택 사항. 20260402 이후 버전에서 지원합니다. 진행률 콜백의 호출 간격을 밀리초 단위로 제어합니다.
  • URL ESCAPE 안 함
    불리언, 선택 사항. true이면 URL을 escape하지 않고 바로 요청합니다. 기본값은 false입니다.
    URL을 직접 escape하는 방법은 lcurl 모듈easy:escapeeasy:unescape를 참조하십시오.

반환값

  • HTTP 상태 코드
    정수. 이번 요청의 http 상태 코드를 반환하며 요청 시간이 초과되면 -1을 반환합니다.
  • 응답 헤더 JSON 텍스트
    문자열 또는 nil. 요청이 완료되면 JSON 형식의 헤더 정보를 반환하며 요청 시간이 초과되면 nil을 반환합니다.

설명

HTTP/1.1 프로토콜의 HEAD 메서드로 네트워크 리소스의 헤더 정보를 요청합니다.
HEAD 요청은 일반적으로 GET 요청과 같은 응답 헤더를 받지만 실제 본문 내용은 반환하지 않습니다.
이 함수는 실행을 양보할 수 있으며, 반환되기 전에 다른 스레드가 실행 기회를 얻을 수 있습니다.

진행률 콜백 함수가 받는 info 구조는 다음과 같습니다.

{
count_of_bytes_sent = 전송한 바이트 수;
count_of_bytes_expected_to_send = 전송 예정 바이트 수;
count_of_bytes_received = 수신한 바이트 수;
count_of_bytes_expected_to_receive = 수신 예정 바이트 수;
}

예제

local c, h = http.head("https://www.xxtouch.app/测试文本.txt")
if c==200 then -- 반환된 상태 코드가 HTTP_OK이면
sys.alert(h) -- 요청에서 받은 헤더 정보 출력
end

참고: 위 코드에서는 이 장에서 설명하지 않는 함수인 sys.alert를 사용합니다.