HTTP란? HTTP 헤더와 상태코드 2xx 등의 의미

HTTP(HyperText Transfer Protocol)W3에서 정보를 주고 받을 수 있는 프로토콜입니다. 하이퍼 텍스트 전송 프로토콜은 웹 브라우저와 같은 통신 플랫폼에 웹 사이트를 로드할 때 사용되며 인터넷에서 데이터(HTML, CSS, 이미지, 비디오 등)를 전송하는데 사용되는 프로토콜입니다.

HTTP 요청 정보

HTTP 요청에는 보통 5가지의 정보를 확인할 수 있습니다.

ⓐ HTTP 버전 
ⓑ URL
ⓒ HTTP 메서드
ⓓ HTTP 헤더
ⓔ 선택 사항인 HTTP 본문

HTTP(HyperText Transfer Protocol) 하이퍼 텍스트 전송 프로토콜

1. HTTP 버전

HTTP 버전은 초기 버전이 없을 때부터 시작하여 HTTP/1.0이 발표되면서 초기 버전은 HTTP/0.9가 됩니다. 이후 HTTP/1.1, HTTP/2를 거쳐 HTTP/3까지 버전이 나오게 됩니다. 2020년 대 전 후 HTTP는 2와 3버전이 병행되어 사용되고 있습니다.

2. HTTP 요청 URL

URL은 서버에 자원을 요청하기 위한 주소입니다.

EX) HTTPS://uknew.co/도메인이란

3. HTTP 메서드

HTTP 메서드는 웹 클라이언트와 서버 간의 통신에서 사용되는 요청 방식을 나타내는 것입니다. 이는 클라이언트가 원하는 작업을 서버에게 알리고, 서버는 이에 따른 작업을 수행하는 방식을 결정할 수 있도록 합니다.

HTTP 메서드는 주어진 리소스에 대해 수행하길 원하는 행동을 나타내며, 일반적으로 다음과 같은 동사들이 사용됩니다.

HTTP 메서드설명
GET서버에서 특정 리소스의 정보를 가져오기 위해 사용됩니다.
POST클라이언트에서 서버로 데이터를 제출하고, 서버의 상태를 변경하기 위해 사용됩니다.
HEADGET 메서드와 동일하지만, 응답 본문을 포함하지 않습니다.
DELETE특정 리소스를 삭제하기 위해 사용됩니다.
PUT클라이언트에서 서버로 데이터를 전송하여, 해당 리소스를 완전히 대체하거나
새로 생성하기 위해 사용됩니다.
CONNECT클라이언트가 프록시 서버를 통해 다른 네트워크와 터널을 맺을 때 사용됩니다.
OPTIONS목적 리소스의 통신을 설정하는 데 사용됩니다.
TRACE클라이언트와 서버 간의 통신 메시지를 반복하여 테스트합니다.
PATCH특정 리소스의 일부분을 수정하기 위해 사용됩니다.

4. HTTP 헤더

HTTP 요청과 응답에는 모두 헤더가 포함됩니다. 이 헤더는 키-값 쌍으로 구성된 텍스트 정보를 담고 있으며, 클라이언트가 사용하는 브라우저와 요청하는 데이터 등과 같은 핵심 정보를 전달합니다. HTTP 헤더는 웹 브라우저와 서버 간의 통신에서 중요한 역할을 하며, 클라이언트와 서버가 서로 정보를 주고받는 데 필수적인 요소입니다.

크롬 개발자 도구를 통해 HTTP 헤더에는 앞서 언급한 요청 URL과 요청 메서드 등의 정보와 응답 헤더와 요청 헤더를 확인할 수 있습니다.

HTTP 헤더(요청 URL과 응답 헤더 및 요청 헤더 정보)

5. HTTP 요청 본문

HTTP 요청 본문에는 텍스트, 이미지, 오디오 등 다양한 종류의 데이터를 포함할 수 있습니다. 이 데이터는 요청을 처리하는 서버에서 분석되고 처리됩니다. 요청 본문의 크기는 HTTP 요청 헤더에 Content-Length 헤더 필드로 명시됩니다.

요청 본문은 일반적으로 HTML 폼 데이터, JSON 데이터, XML 데이터, 멀티파트 데이터 등과 같은 다양한 형식으로 전송됩니다. HTTP 요청 본문은 보안적인 이유로 암호화되어 전송되기도 합니다.

요청 본문은 일반적으로 HTML 폼 데이터, JSON 데이터, XML 데이터, 멀티파트 데이터 등과 같은 다양한 형식으로 전송됩니다. HTTP 요청 본문은 보안적인 이유로 암호화되어 전송되기도 합니다.

HTTP 상태코드

코드메시지설명
1XXInformational(정보)정보 교환.
100Continue클라이언트가 서버에게 요청을 보내고, 서버가 해당 요청의 일부를 받았음을 의미. 이때 서버는 클라이언트에게 나머지 요청 정보를 계속 보내주길 바라는 의도로 100 상태 코드 반환(HTTP 1.1에서 처음으로 도입)
101Switching Protocols클라이언트가 요청한 리소스가 요청된 URI의 표준 프로토콜(HTTP 또는 HTTPS)이 아닌 다른 프로토콜(예: WebSocket)을 사용하기 위해 서버가 변경되었음을 나타냄. 서버는 Upgrade 헤더를 사용하여 클라이언트와 새로운 프로토콜로 통신할 것임을 알리게 되며,이를 통해 클라이언트는 새로운 프로토콜을 사용하여 서버와 통신할 수 있음
2XXSuccess(성공)데이터 전송이 성공적으로 이루어졌거나 이해되었거나 수락된 것을 나타냄.
200OK전송이 성공적으로 완료됨.
202Accepted클라이언트의 요청이 수락되었음.
203Non-authoritavive Information클라이언트 요청 중 일부가 성공적으로 전송됨.
204Non Content클라이언트 요청에 대한 처리는 완료되었으나, 서버가 전송할 데이터가 없음을 의미.
205Reset Content새 문서 없음. 하지만 브라우저는 문서 창을 리셋해야 함. (HTTP 1.1에서 처음으로 도입)
206Partial Content클라이언트가 Range 헤더와 함께 일부분만 요청하고, 서버가 해당 부분만 전송한 상태 (HTTP 1.1에서 처음 등장)
3XXRedirection(방향 바꿈)자료의 위치가 바꿤.
300Multiple Choices최근에 이전된 데이터 요청
301Moved Permanently요구한 데이터를 변경한 새 URL에서 찾음
302Moved Permanently요구한 데이터가 변경된 URL에 있음을 명시.
301과 비슷하지만 새 URL이 일시적인 것으로 간주
303See Other요청한 데이터 미 변경으로 문제 있음.
새로운 요청이 필요함. (주로 POST 요청에 대한 응답으로 사용됨)
304Not modified클라이언트의 캐시에 저장된 문서를 선택적으로 요청하여 문서가 수정되지 않았음을 알리는 상태 코드.(지정된 날짜보다 더 나중의 문서만을 보여주도록 하는 If-Modified-Since 헤더의 경우).
305Use Proxy요청한 문서는 프록시를 통해 추출되어야 함. (HTTP 1.1에서 처음으로 도입)
307Temporary Redirect임시적으로 자료 옴겨짐
4XXClient Error(클라이언트 오류)클라이언트 측에서 발생한 오류. 주소를 잘못 입력하거나 요청이 잘못되었음을 나타냄.
400Bad Request요청 실패. 문법상 오류로 서버가 요청사항을 처리하지 못함.
401.1Unauthorized권한 없음 (접속실패). 서버에 로그인하려는 요청이 서버에 저장된 권한과 일치하지 않음.
401.2Unauthorized권한 없음 (서버설정으로 인한 접속 실패). 클라이언트의 요청이 서버에 들어있는 권한과 일치하지 않음.
401.3Unauthorized자원에 대한 ACL에 기인한 권한 없음. 클라이언트가 특정 자료에 접근할 권한이 없음.
401.4Unauthorized권한 없음 (필터에 의한 권한 부여 실패). 서버의 필터 프로그램이 권한을 부여하지 못해서 클라이언트가 자원에 접근할 수 없는 경우.
401.5UnauthorizedISA PI나 CGI프로그램에 의한 권한 부여 실패로 클라이언트는 해당 자원에 접근할 수 없음.
402Payment Required예약됨.
403.1Forbidden금지 (수행접근 금지). 요청한 동작이 허용되지 않음. 수행시키지 못하도록 설정된 디렉터리 내의 파일을 수행하려고 했을 때 발생하는 오류.
403.2Forbidden접근한 디렉터리에 가용한 기본 페이지가 없어서 읽기 접근이 금지됨.
403.4Forbidden금지 (SSL 필요함). 클라이언트가 SSL 보안 연결을 사용하지 않고 SSL이 필요한 페이지에 액세스하려고 시도했을 때 발생
403.5Forbidden금지 (SSL 128필요함). 페이지(서버)가 128비트의 SSL로 보안유지 되고 있어 접근이 금지됨
403.6ForbiddenIP 차단. 사용자가 접속하려는 IP가 차단되어 접속할 수 없는 상태임.
403.7Forbidden클라이언트가 자료에 접근할 수 있는지 확인이 필요하여 접근이 금지됨.
403.8Forbidden사이트에 접근하는 것이 허락되지 않거나 서버가 요청사항을 수행하지 않아 접근 거부됨.
403.9Forbidden접근금지 (연결된 사용자수 과다). 서버가 BUSY 상태로 요청을 수행할 수 없음.
403.10Forbidden설정이 확실하지 않음. 서버 설정에 문제가 있어서 요청을 수행할 수 없음.
403.11Forbidden잘못된 암호 입력으로 인한 접근 거부.
403.12ForbiddenMapper 접근 거부, 클라이언트 인증용 맵 접근 실패
404Not Found서버의 문서를 찾을 수 없음.(파일 및 스크립트)
405Method not allowed해당 요청에 명시된 메서드를 사용할 수 없어서 자원에 대한 이용이 거부됨.
406Not Acceptable허용되지 않음 (허용 가능한 응답 없음). 클라이언트의 Accept 헤더 필드에 기술된 미디어 타입을 반환할 수 없음.
407Proxy Authentication Required프록시 서버 인증 필요
408Request timeout요청 시간이 초과
409Conflict서버가 요청을 처리하지 못하고 충돌이 발생한 상태로, 보통 PUT 요청과 관련이 있으며 다른 버전의 파일 업로드 시 발생
410Gone영구적 사용 불가
411Length Required클라이언트가 필요한 Content-Length 헤더를 포함하지 않아 요청을 처리할 수 없음.
412Precondition Failed412 – 요청된 리소스에 대해 충족시킬 수 없는 하나 이상의 선결조건이 실패한 경우 발생
413Request entity too large요청된 자원이 서버가 처리 가능한 최대 크기보다 큼. (HTTP 1.1에서 처음으로 도입)
414Request-URI too longURI가 너무 길어서 서버가 처리할 수 없음.
415Unsupported media type요청이 알려지지 않은 형태임. (HTTP 1.1에서 처음으로 도입)
5XXServer Error(서버 오류)서버 측의 오류로 인해 요청을 처리할 수 없음.
500Internal Server Error서버 내부 오류.
501Not Implemented필요한 기능이 서버에 설치되지 않았음.
502Bad gateway게이트웨이 상태 나쁨.
503Service Unavailable서버가 현재 사용 불가능하거나 과부하 상태인 경우를 나타내는 오류 코드.
서버에서 일시적인 문제가 발생하여 요청을 처리할 수 없는 상황
일반적으로 잠시 후에 다시 시도하면 문제가 해결
504Gateway timeout“게이트웨이 시간초과”를 의미. 게이트웨이나 프록시 서버가 요청을 수행하는 동안 업스트림 서버로부터 응답이 오지 않아 발생하는 오류 (HTTP 1.1에서 처음으로 도입)
505HTTP Version Not Supported해당 HTTP 버전 미지원

크게 HTTP 정의와 HTTP 헤더 및 HTTP 상태코드에 대해 알아 봤습니다.

HTTP 요청(브라우저N서버)
콘텐츠 내 광고 및 제휴 링크가 포함될 수 있으며, 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

Similar Posts