HTTP 메시지
Message 클래스는 요청과 응답 모두에 공통적인 HTTP 메시지 부분(메시지 본문, 프로토콜 버전, 헤더 작업 유틸리티 및 콘텐츠 협상 처리 메서드 등)에 대한 인터페이스를 제공합니다.
이 클래스는 Request Class 및 Response Class가 확장하는 부모 클래스이며, 직접 사용되지는 않습니다.
클래스 참조
- class CodeIgniter\HTTP\Message
- getBody()
- 반환:
현재 메시지 본문
- 반환 형식:
mixed
설정된 메시지 본문이 있으면 현재 메시지 본문을 반환합니다. 본문이 없으면 null을 반환합니다:
<?php echo $message->getBody();
- setBody($data)
- 매개변수:
$data (
mixed) – 메시지의 본문입니다.
- 반환:
체이닝을 허용하기 위한 Message|Response 인스턴스입니다.
- 반환 형식:
CodeIgniter\HTTP\Message|CodeIgniter\HTTP\Response
현재 요청의 본문을 설정합니다.
- appendBody($data)
- 매개변수:
$data (
mixed) – 메시지의 본문입니다.
- 반환:
체이닝을 허용하기 위한 Message|Response 인스턴스입니다.
- 반환 형식:
CodeIgniter\HTTP\Message|CodeIgniter\HTTP\Response
현재 요청의 본문에 데이터를 추가합니다.
- populateHeaders()
- 반환:
없음
SERVER 데이터에서 발견된 헤더를 스캔하고 구문 분석하여 나중에 접근할 수 있도록 저장합니다. 이는 IncomingRequest Class에서 현재 요청의 헤더를 사용할 수 있게 하기 위해 사용됩니다.
헤더는
HTTP_로 시작하는 모든 SERVER 데이터(예:HTTP_HOST)입니다. 각 메시지는 표준 대문자와 언더스코어 형식에서 단어별 대문자 및 대시 형식으로 변환됩니다. 앞의HTTP_는 문자열에서 제거됩니다. 따라서HTTP_ACCEPT_LANGUAGE는Accept-Language가 됩니다.
- headers()
- 반환:
발견된 모든 헤더의 배열
- 반환 형식:
array
발견되었거나 이전에 설정된 모든 헤더의 배열을 반환합니다.
- header($name)
- 매개변수:
$name (
string) – 값을 가져오려는 헤더의 이름입니다.
- 반환:
단일 헤더 객체를 반환합니다. 동일한 이름의 헤더가 여러 개 존재하면 헤더 객체의 배열을 반환합니다.
- 반환 형식:
CodeIgniter\HTTP\Header|array
단일 메시지 헤더의 현재 값을 검색할 수 있습니다.
$name은 대소문자를 구분하지 않는 헤더 이름입니다. 헤더는 위에서 설명한 대로 내부적으로 변환되지만, 어떤 대소문자 조합으로도 헤더에 접근할 수 있습니다:<?php // These are all the same: $message->header('HOST'); $message->header('Host'); $message->header('host');
헤더에 여러 값이 있는 경우
getValue()는 값들의 배열을 반환합니다.getValueLine()메서드를 사용하면 값을 문자열로 가져올 수 있습니다:<?php echo $message->header('Accept-Language'); /* * Outputs something like: * 'Accept-Language: en,en-US' */ echo $message->header('Accept-Language')->getValue(); /* * Outputs something like: * [ * 'en', * 'en-US', * ] */ echo $message->header('Accept-Language')->getValueLine(); /* * Outputs something like: * en,en-US' */
두 번째 매개변수로 필터 값을 전달하여 헤더를 필터링할 수 있습니다:
<?php $message->header('Document-URI', FILTER_SANITIZE_URL);
- hasHeader($name)
- 매개변수:
$name (
string) – 존재하는지 확인하려는 헤더의 이름입니다.
- 반환:
존재하면 true, 그렇지 않으면 false를 반환합니다.
- 반환 형식:
bool
- getHeaderLine($name)
- 매개변수:
$name (
string) – 가져올 헤더의 이름입니다.
- 반환:
헤더 값을 나타내는 문자열입니다.
- 반환 형식:
string
헤더의 값들을 문자열로 반환합니다. 이 메서드는 헤더에 값이 여러 개인 경우 값을 문자열로 편리하게 얻을 수 있도록 합니다. 값들은 적절히 연결됩니다:
<?php echo $message->getHeaderLine('Accept-Language'); /* * Outputs: * 'en,en-US' */
- setHeader($name, $value)
- 매개변수:
$name (
string) – 값을 설정할 헤더의 이름입니다.$value (
mixed) – 헤더에 설정할 값입니다.
- 반환:
현재 Message|Response 인스턴스
- 반환 형식:
CodeIgniter\HTTP\Message|CodeIgniter\HTTP\Response
단일 헤더의 값을 설정합니다.
$name은 헤더의 대소문자를 구분하지 않는 이름입니다. 컬렉션에 헤더가 아직 없다면 생성됩니다.$value는 문자열 또는 문자열 배열일 수 있습니다:<?php $message->setHeader('Host', 'codeigniter.com');
- removeHeader($name)
- 매개변수:
$name (
string) – 제거할 헤더의 이름입니다.
- 반환:
현재 메시지 인스턴스
- 반환 형식:
Message에서 헤더를 제거합니다.
$name은 대소문자를 구분하지 않는 헤더 이름입니다:<?php $message->removeHeader('Host');
- appendHeader($name, $value)
- 매개변수:
$name (
string) – 수정할 헤더의 이름입니다$value (
string) – 헤더에 추가할 값입니다.
- 반환:
현재 메시지 인스턴스
- 반환 형식:
기존 헤더에 값을 추가합니다. 헤더는 단일 문자열이 아니라 값들의 배열이어야 합니다. 만약 문자열이라면 LogicException이 발생합니다.
<?php $message->appendHeader('Accept-Language', 'en-US; q=0.8');
- prependHeader($name, $value)
- 매개변수:
$name (
string) – 수정할 헤더의 이름입니다$value (
string) – 헤더 앞에 삽입할 값입니다.
- 반환:
현재 메시지 인스턴스
- 반환 형식:
기존 헤더의 앞에 값을 삽입합니다. 헤더는 단일 문자열이 아닌 값들의 배열이어야 합니다. 만약 문자열이라면 LogicException이 발생합니다.
<?php $message->prependHeader('Accept-Language', 'en,');
- addHeader($name, $value)
Added in version 4.5.0.
- 매개변수:
$name (
string) – 추가할 헤더의 이름입니다.$value (
string) – 헤더의 값입니다.
- 반환:
현재 메시지 인스턴스
- 반환 형식:
동일한 이름으로 헤더(헤더 값이 아님)를 추가합니다. 동일한 이름의 헤더를 여러 개 설정할 때만 사용하십시오,
<?php $message->addHeader('Set-Cookie', 'logged_in=no; Path=/'); $message->addHeader('Set-Cookie', 'sessid=123456; Path=/');
- getProtocolVersion()
- 반환:
현재 HTTP 프로토콜 버전
- 반환 형식:
string
메시지의 현재 HTTP 프로토콜을 반환합니다. 설정되지 않은 경우
1.1을 반환합니다.
- setProtocolVersion($version)
- 매개변수:
$version (
string) – HTTP 프로토콜 버전입니다.
- 반환:
현재 메시지 인스턴스
- 반환 형식:
이 Message가 사용하는 HTTP 프로토콜 버전을 설정합니다. 유효한 값은
1.0,1.1,2.0,3.0입니다:<?php $message->setProtocolVersion('1.1');