수색…


매개 변수

상태 코드 이유 - 구문 - 설명
100 계속 - 클라이언트는 다중 부분 요청의 다음 부분을 보내야합니다.
101 스위칭 프로토콜 - 서버가이 통신에 사용되는 프로토콜의 버전 또는 유형을 변경하고 있습니다.
200 확인 - 서버가 클라이언트 요청을 수신하여 완료했습니다.
201 Created - 서버가 요청을 수락하고 Location 헤더의 URI에서 사용할 수있는 새 리소스를 만들었습니다.
202 수락 됨 - 서버가 클라이언트의 요청을 수신하여 수락했으나 아직 처리를 시작하거나 완료하지 않았습니다.
203 비 정식 정보 - 서버가 원본 서버에서 사용할 수있는 정보의 하위 집합 또는 상위 집합 일 수있는 데이터를 반환합니다. 주로 프록시에서 사용됩니다.
204 내용 없음 - 응답에 본문이 없을 때 200 (OK) 대신 사용됩니다.
205 콘텐츠 재설정 - 204 (내용 없음)과 동일하지만 클라이언트가 활성 문서보기를 다시로드해야합니다.
206 부분 콘텐츠 - 클라이언트가 Range 헤더를 요청할 때 200 (OK) 대신 사용됩니다.
300 자 다중 선택 - 요청 된 자원은 여러 URI에서 사용할 수 있으며 클라이언트는 요청을 메시지 본문의 목록에 지정된 URI로 리디렉션해야합니다.
301 영구적으로 이동 - 요청 된 리소스는이 URI에서 더 이상 사용할 수 없으며 클라이언트는이 헤더 및 앞으로의 모든 요청을 Location 헤더에 지정된 URI로 리디렉션해야합니다.
302 Found - 자원이 일시적으로 다른 URI에 있습니다. 이 요청은 사용자 확인시 Location 헤더의 URI로 리디렉션되어야하지만 이후 요청은 변경하면 안됩니다.
303 기타 - 302 (Found)와 매우 유사하지만 제공된 URI로 리디렉션하기 위해 사용자 입력이 필요하지 않음을 참조하십시오. 제공된 URI는 GET 요청으로 검색해야합니다.
304 수정되지 않음 - 클라이언트가 If-Modified-Since 또는 유사한 헤더를 보내고 그 시점 이후로 자원이 수정되지 않았습니다. 클라이언트는 자원의 캐시 사본을 표시해야합니다.
305 프록시 사용 - 요청 된 자원은 Location 헤더 필드에 지정된 프록시를 통해 다시 요청해야합니다.
307 임시 리디렉션 - 302 (Found)와 동일하지만 HTTP 1.0 클라이언트는 307 응답을 지원하지 않습니다.
400 잘못된 요청 - 클라이언트가 구문 오류가 포함 된 잘못된 요청을 보내고이를 반복하기 전에이를 수정해야하는 요청을 수정해야합니다.
401 Unauthorized - 요청한 리소스를 인증없이 사용할 수 없습니다. 클라이언트는 인증 세부 정보를 제공하기 위해 Authorization 헤더를 사용하여 요청을 반복 할 수 있습니다.
402 결제 필수 - 콘텐츠를보기 위해 사용자 가입이 필요한 응용 프로그램에서 사용하기 위해 지정되지 않은 상태 코드입니다.
403 금지됨 - 서버는 요청을 인식하지만 기존 액세스 제어로 인해 요청을 수행하기를 거부합니다. 요청을 반복해서는 안됩니다.
404 찾을 수 없음 -이 서버에서 요청한 URI와 일치하는 리소스를 사용할 수 없습니다. 액세스 제어 세부 사항이 드러나지 않도록 403 대신 사용될 수 있습니다.
405 메소드가 허용되지 않음 - 자원이 요청 메소드 (HTTP 동사)를 지원하지 않습니다. Allow 헤더는 수용 가능한 요청 방법을 나열합니다.
406 수락 불가 - 요청에서 보낸 수락 헤더를 위반하는 특성을 가진 리소스입니다.
407 프록시 인증 필요 - 401 (Unauthorized)와 유사하지만 클라이언트가 먼저 중간 프록시로 인증해야 함을 나타냅니다.
408 Request Timeout - 서버가 클라이언트의 다른 요청을 예상했지만 수용 가능한 시간 내에 제공되지 않았습니다.
409 충돌 - 자원의 현재 상태와 충돌하여 요청을 완료 할 수 없습니다.
410 사라짐 - 404 (찾을 수 없음)와 유사하지만 영구 제거를 나타냅니다. 전달 주소를 사용할 수 없습니다.
411 Length Required - 클라이언트가 유효한 Content-Length 헤더를 지정하지 않았으며 서버가이 요청을 수락하기 전에 그렇게해야합니다.
412 Precondition Failed - 클라이언트가 보낸 조건부 헤더에 지정된 모든 조건에 리소스를 사용할 수 없습니다.
413 Request Entity Too Large - 서버는 현재 클라이언트가 보낸 길이의 메시지 본문을 처리 할 수 ​​없습니다.
414 Request-URI가 너무 오래 - Request-URI가 서버가 해석하려고하는 것보다 길기 때문에 서버가 요청을 거부합니다.
415 지원되지 않는 미디어 유형 - 서버가 클라이언트가 지정한 MIME 또는 미디어 유형을 지원하지 않으며이 요청을 처리 할 수 ​​없습니다.
416 Requested Range Not Satisfiable - 클라이언트가 바이트 범위를 요청했지만 서버가 해당 사양에 콘텐츠를 제공 할 수 없습니다.
417 Expectation Failed - 클라이언트가 Expect 헤더에서 서버가 충족시킬 수없는 제약 조건을 지정했습니다.
500 내부 서버 오류 - 서버가이 요청을 완료하지 못하게하는 예기치 않은 조건 또는 오류를 만났습니다.
501 구현되지 않음 - 서버가 요청을 완료하는 데 필요한 기능을 지원하지 않습니다. 일반적으로 모든 리소스에서 지원되지 않는 요청 방법을 나타내는 데 사용됩니다.
502 잘못된 게이트웨이 - 서버가 프록시이며이 요청을 처리하는 동안 업스트림 서버에서 잘못된 응답을 받았습니다.
503 Service Unavailable (서비스를 사용할 수 없음) - 서버가 부하가 높거나 유지 관리 중이며 현재이 요청을 처리 할 수있는 용량이 없습니다.
504 게이트웨이 시간 초과 - 서버가 프록시이고 적시에 업스트림 서버로부터 응답을받지 못했습니다.
505 HTTP 버전이 지원되지 않음 - 서버가 클라이언트가 요청한 HTTP 프로토콜 버전을 지원하지 않습니다.

기본 응답 형식

HTTP 서버가 올바른 형식의 HTTP 요청 을 받으면 요청에 포함 된 정보를 처리하고 클라이언트에 응답을 반환해야합니다. 간단한 HTTP 1.1 응답은 다음과 같을 수 있습니다. 보통 여러 헤더 필드와 응답 본문이옵니다.

HTTP/1.1 200 OK \r\n
HTTP/1.1 404 Not Found \r\n
HTTP/1.1 503 Service Unavailable \r\n

간단한 HTTP 1.1 응답 형식은 다음과 같습니다.

HTTP-Version Status-Code Reason-Phrase CRLF

요청 에서처럼 HTTP-Version 은 사용중인 HTTP 프로토콜의 버전을 나타냅니다. HTTP 1.1의 경우 항상 HTTP/1.1 문자열이어야합니다.

Status-Code 는 클라이언트의 요청 상태를 나타내는 3 자리 코드입니다. 이 코드의 첫 번째 숫자는 상태 코드를 응답의 [ 5] 범주 중 하나로 분류하는 상태 클래스입니다 .

  • 1xx 정보 - 서버가 요청을 수신했으며 처리가 계속됩니다.
  • 2xx 성공 - 서버가 요청을 수락하고 처리했습니다.
  • 3xx Redirection (리디렉션) - 요청을 완료하기 위해 클라이언트 측에서 추가 작업이 필요합니다.
  • 4xx Client Errors - 클라이언트가 조작 된 요청을 전송했거나 완료 할 수 없음
  • 5xx 서버 오류 - 요청이 유효했지만 서버가 현재 요청을 처리 할 수 ​​없습니다.

Reason-Phrase 은 상태 코드에 대한 간단한 설명입니다. 예를 들어, 코드 200 에는 OK 구문이 있습니다. 코드 ( 404Not Found 문구를 갖는다. 이유 구문의 전체 목록은 매개 변수, 아래 또는 HTTP 사양 에서 사용할 수 있습니다.

이 줄은 대개 \r\n 으로 표시되는 캐리지 리턴 줄 공급 쌍으로 끝납니다.

추가 헤더

HTTP 요청과 마찬가지로 HTTP 응답은 제공하는 응답을 수정하거나 보강하기위한 추가 헤더를 포함 할 수 있습니다.

사용 가능한 헤더의 전체 목록은 사양의 §6.2에 정의되어 있습니다. 가장 일반적으로 사용되는 헤더는 다음과 같습니다.

  • Server 에 대한 User-Agent 요청 헤더 와 같은 기능을 수행합니다.
  • Location , 리디렉션 할 URI를 나타내는 201 및 3xx 상태 응답에 사용됩니다. 과
  • 이 버전의 반환 된 리소스에 대한 고유 한 식별자 인 ETag 는 클라이언트가 응답을 캐시 할 수있게합니다.

응답 헤더는 상태 표시 줄 뒤에 오며 요청 헤더 는 다음과 같이 형성됩니다.

Name: Value CRLF

NameETag 또는 Location 과 같은 헤더 이름을 제공하고 Value 는 서버가 해당 헤더에 대해 설정하는 값을 제공합니다. 행은 CRLF로 끝납니다.

헤더를 사용한 응답은 다음과 같습니다.

HTTP/1.1 201 Created \r\n
Server: WEBrick/1.3.1 \r\n
Location: http://example.com/files/129742 \r\n

메시지 본문

요청 본문 과 마찬가지로 HTTP 응답에는 메시지 본문이 포함될 수 있습니다. 이것은 클라이언트가 처리 할 추가 데이터를 제공합니다. 특히, 잘 구성된 GET 요청에 대한 200 OK 응답은 항상 요청 된 데이터가 포함 된 메시지 본문을 제공해야합니다. (없는 경우, 204 No Content가 더 적절한 응답입니다.)

메시지 본문은 모든 헤더와 이중 CRLF 뒤에 포함됩니다. 요청의 경우, 바이트 길이는 Content-Length 헤더와 함께 제공되어야합니다. 따라서 GET 요청에 대한 성공적인 응답은 다음과 같이 보일 수 있습니다.

HTTP/1.1 200 OK\r\n
Server: WEBrick/1.3.1\r\n
Content-Length: 39\r\n
ETag: 4f7e2ed02b836f60716a7a3227e2b5bda7ee12c53be282a5459d7851c2b4fdfd\r\n
\r\n
Nobody expects the Spanish Inquisition.


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow