HTTP 메시지

Message 클래스는 요청과 응답 모두에 공통적인 HTTP 메시지 부분(메시지 본문, 프로토콜 버전, 헤더 작업 유틸리티 및 콘텐츠 협상 처리 메서드 등)에 대한 인터페이스를 제공합니다.

이 클래스는 Request ClassResponse 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_LANGUAGEAccept-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) – 제거할 헤더의 이름입니다.

반환:

현재 메시지 인스턴스

반환 형식:

CodeIgniter\HTTP\Message

Message에서 헤더를 제거합니다. $name은 대소문자를 구분하지 않는 헤더 이름입니다:

<?php

$message->removeHeader('Host');
appendHeader($name, $value)
매개변수:
  • $name (string) – 수정할 헤더의 이름입니다

  • $value (string) – 헤더에 추가할 값입니다.

반환:

현재 메시지 인스턴스

반환 형식:

CodeIgniter\HTTP\Message

기존 헤더에 값을 추가합니다. 헤더는 단일 문자열이 아니라 값들의 배열이어야 합니다. 만약 문자열이라면 LogicException이 발생합니다.

<?php

$message->appendHeader('Accept-Language', 'en-US; q=0.8');
prependHeader($name, $value)
매개변수:
  • $name (string) – 수정할 헤더의 이름입니다

  • $value (string) – 헤더 앞에 삽입할 값입니다.

반환:

현재 메시지 인스턴스

반환 형식:

CodeIgniter\HTTP\Message

기존 헤더의 앞에 값을 삽입합니다. 헤더는 단일 문자열이 아닌 값들의 배열이어야 합니다. 만약 문자열이라면 LogicException이 발생합니다.

<?php

$message->prependHeader('Accept-Language', 'en,');
addHeader($name, $value)

Added in version 4.5.0.

매개변수:
  • $name (string) – 추가할 헤더의 이름입니다.

  • $value (string) – 헤더의 값입니다.

반환:

현재 메시지 인스턴스

반환 형식:

CodeIgniter\HTTP\Message

동일한 이름으로 헤더(헤더 값이 아님)를 추가합니다. 동일한 이름의 헤더를 여러 개 설정할 때만 사용하십시오,

<?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 프로토콜 버전입니다.

반환:

현재 메시지 인스턴스

반환 형식:

CodeIgniter\HTTP\Message

이 Message가 사용하는 HTTP 프로토콜 버전을 설정합니다. 유효한 값은 1.0, 1.1, 2.0, 3.0입니다:

<?php

$message->setProtocolVersion('1.1');