티스토리 뷰

반응형

HTTP와 응답 코드

HTTP(HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간의 통신을 위한 프로토콜입니다. HTTP 응답 코드는 웹 서버가 클라이언트에게 응답할 때, 상태 코드로 사용하는 3자리 숫자입니다. 이 코드는 클라이언트에게 서버의 처리 상태를 알려주는 역할을 합니다. 이번 글에서는, HTTP 응답 코드의 종류와 의미에 대해 알아보겠습니다.

 

HTTP 응답 코드는 100부터 599까지의 범위를 가지며, 5가지의 범주로 나눌 수 있습니다.

 

1xx (Informational)

1xx 범주의 코드는 클라이언트 요청을 받아들였으며, 요청 처리를 계속하고 있음을 나타냅니다. 예를 들어, 100 코드는 클라이언트 요청이 처리되고 있음을 나타내며, 101 코드는 클라이언트 요청이 승인되었음을 나타냅니다.

 

100 Continue

100 Continue 응답 코드는 클라이언트 요청의 일부가 서버에 도달하였으며, 서버가 요청을 계속 처리할 것임을 나타냅니다. 일반적으로, 클라이언트가 서버로 큰 데이터를 전송할 때, 서버는 이 데이터를 미리 처리하지 않고, 100 Continue 응답 코드를 보내어, 클라이언트에게 나머지 데이터를 전송할 것임을 알려줍니다.

 

예를 들어, 클라이언트가 웹 서버로 파일을 업로드하는 요청을 보낸 경우, 서버는 100 Continue 응답 코드를 보내어, 클라이언트에게 이 파일의 업로드를 계속할 수 있음을 알려줍니다.

 

101 Switching Protocols

101 Switching Protocols 응답 코드는 서버가 클라이언트의 요청에 대해 프로토콜을 변경할 것임을 알려줍니다. 이 코드는 일반적으로, 클라이언트가 HTTP 프로토콜에서 WebSocket 프로토콜로 전환하는 경우에 사용됩니다.

 

예를 들어, 클라이언트가 웹 서버로 WebSocket 연결을 요청한 경우, 서버는 101 Switching Protocols 응답 코드를 보내어, 클라이언트와 WebSocket 연결을 맺을 것임을 알려줍니다. 이후, 클라이언트와 서버는 WebSocket 프로토콜을 사용하여 실시간 데이터를 주고받을 수 있습니다.

 

 

2xx (Successful)

2xx 범주의 코드는 클라이언트 요청이 성공적으로 처리되었음을 나타냅니다. 예를 들어, 200 코드는 서버가 클라이언트 요청을 성공적으로 처리했음을 나타내며, 204 코드는 서버가 요청을 성공적으로 처리했지만, 응답 본문이 없음을 나타냅니다.

 

200 OK

00 OK 응답 코드는 클라이언트 요청이 성공적으로 처리되었음을 나타냅니다. 이 코드는 일반적으로, 서버가 클라이언트의 요청을 올바르게 받아들였고, 요청에 대한 적절한 응답을 반환했음을 나타냅니다.

 

예를 들어, 클라이언트가 웹 서버로 특정 페이지에 대한 요청을 보낸 경우, 서버는 200 OK 응답 코드와 함께 요청한 페이지의 HTML 코드를 반환할 것입니다.

 

 

201 Created

201 Created 응답 코드는 클라이언트 요청으로 새로운 리소스가 생성되었음을 나타냅니다. 이 코드는 일반적으로, POST 요청을 통해 새로운 리소스를 생성할 때 사용됩니다.

 

예를 들어, 클라이언트가 웹 서버로 새로운 사용자를 생성하는 POST 요청을 보낸 경우, 서버는 201 Created 응답 코드와 함께 새로운 사용자의 정보를 포함하는 응답을 반환할 것입니다.

 

204 No Content

204 No Content 응답 코드는 클라이언트 요청이 성공적으로 처리되었지만, 반환할 데이터가 없음을 나타냅니다. 이 코드는 일반적으로, 클라이언트가 서버에 대한 데이터를 업데이트하거나 삭제하는 요청을 보낸 경우에 사용됩니다.

 

예를 들어, 클라이언트가 웹 서버로 데이터 삭제 요청을 보낸 경우, 서버는 204 No Content 응답 코드와 함께 삭제된 데이터가 없음을 알려줄 것입니다.

 

3xx (Redirection)

3xx 범주의 코드는 클라이언트가 추가 동작을 수행해야 함을 나타냅니다. 예를 들어, 301 코드는 클라이언트가 요청한 리소스가 영구적으로 다른 URI로 이동되었음을 나타내며, 302 코드는 클라이언트가 요청한 리소스가 일시적으로 다른 URI로 이동되었음을 나타냅니다.

 

301 Moved Permanently

301 Moved Permanently 응답 코드는 클라이언트가 요청한 리소스가 영구적으로 다른 URI로 이동되었음을 나타냅니다. 이 코드는 일반적으로, 서버가 웹 페이지를 새로운 URL로 옮겼을 때 사용됩니다.

예를 들어, 클라이언트가 웹 서버로 특정 페이지에 대한 요청을 보낸 경우, 서버는 301 Moved Permanently 응답 코드와 함께 새로운 URL을 포함하는 응답을 반환할 것입니다. 클라이언트는 이후부터 새로운 URL을 사용하여 해당 페이지에 접근해야 합니다.

 

302 Found

302 Found 응답 코드는 클라이언트가 요청한 리소스가 일시적으로 다른 URI로 이동되었음을 나타냅니다. 이 코드는 일반적으로, 서버가 일시적으로 웹 페이지를 다른 URL로 이동시켰을 때 사용됩니다.

 

예를 들어, 클라이언트가 웹 서버로 특정 페이지에 대한 요청을 보낸 경우, 서버는 302 Found 응답 코드와 함께 새로운 URL을 포함하는 응답을 반환할 것입니다. 클라이언트는 이후에도 기존 URL을 계속 사용하여 해당 페이지에 접근할 수 있습니다.

 

304 Not Modified

304 Not Modified 응답 코드는 클라이언트가 요청한 리소스가 이전에 이미 다운로드되었으며, 수정되지 않았음을 나타냅니다. 이 코드는 일반적으로, 클라이언트가 웹 서버로 캐시된 리소스를 요청할 때 사용됩니다.

 

예를 들어, 클라이언트가 웹 서버로 이미지 파일을 요청한 후, 이후에 다시 같은 이미지 파일을 요청하는 경우, 서버는 304 Not Modified 응답 코드와 함께, 클라이언트가 이전에 다운로드한 이미지 파일을 그대로 사용할 것임을 알려줍니다. 이를 통해 클라이언트는 이미지 파일을 다시 다운로드하지 않아도 되므로, 대역폭과 시간을 절약할 수 있습니다.

 

4xx (Client Error)

4xx 범주의 코드는 클라이언트 오류를 나타냅니다. 예를 들어, 400 코드는 클라이언트 요청이 잘못되었음을 나타내며, 404 코드는 클라이언트가 요청한 리소스가 서버에 없음을 나타냅니다.

 

400 Bad Request

400 Bad Request 응답 코드는 클라이언트 요청이 잘못되었음을 나타냅니다. 이 코드는 일반적으로, 클라이언트가 요청 매개변수를 잘못 지정한 경우나, 요청 본문이 올바르지 않은 경우에 사용됩니다.

예를 들어, 클라이언트가 웹 서버로 특정 페이지에 대한 요청을 보내지만, 요청 매개변수가 잘못 지정된 경우, 서버는 400 Bad Request 응답 코드를 반환할 것입니다.

 

401 Unauthorized

401 Unauthorized 응답 코드는 클라이언트가 요청한 리소스에 대한 권한이 없음을 나타냅니다. 이 코드는 일반적으로, 클라이언트가 인증되지 않았거나, 인증 정보가 잘못된 경우에 사용됩니다.

 

예를 들어, 클라이언트가 웹 서버로 보호된 페이지에 대한 요청을 보내지만, 로그인하지 않았거나, 로그인 정보가 잘못된 경우, 서버는 401 Unauthorized 응답 코드를 반환할 것입니다.

 

404 Not Found

404 Not Found 응답 코드는 클라이언트가 요청한 리소스를 찾을 수 없음을 나타냅니다. 이 코드는 일반적으로, 클라이언트가 잘못된 URL을 요청한 경우에 사용됩니다.

 

예를 들어, 클라이언트가 웹 서버로 존재하지 않는 페이지에 대한 요청을 보낸 경우, 서버는 404 Not Found 응답 코드를 반환할 것입니다.

 

 

5xx (Server Error)

5xx 범주의 코드는 서버 오류를 나타냅니다. 예를 들어, 500 코드는 서버에 오류가 발생했음을 나타내며, 503 코드는 서버가 요청을 처리할 수 없음을 나타냅니다.

 

500 Internal Server Error

500 Internal Server Error 응답 코드는 서버에서 요청을 처리하는 도중에 오류가 발생했음을 나타냅니다. 이 코드는 일반적으로, 서버에서 처리할 수 없는 요청이나, 서버 자체의 오류로 인해 발생합니다.

 

예를 들어, 클라이언트가 웹 서버로 특정 페이지에 대한 요청을 보내지만, 서버에서 해당 페이지를 처리하는 중에 오류가 발생한 경우, 서버는 500 Internal Server Error 응답 코드를 반환할 것입니다.

 

503 Service Unavailable

503 Service Unavailable 응답 코드는 클라이언트가 요청한 서비스를 현재 사용할 수 없음을 나타냅니다. 이 코드는 일반적으로, 서버가 과부하 상태거나, 유지보수를 위해 일시적으로 서비스를 중단한 경우에 사용됩니다.

 

예를 들어, 클라이언트가 웹 서버로 특정 페이지에 대한 요청을 보내지만, 서버가 유지보수 중이거나, 과부하 상태인 경우, 서버는 503 Service Unavailable 응답 코드를 반환할 것입니다.

 

HTTP응답 코드 정리

HTTP 응답 코드는 웹 서버가 클라이언트에게 전송하는 상태 코드입니다. 이 코드는 클라이언트에게 요청 처리 상태를 알려줍니다. HTTP 응답 코드는 100부터 599까지의 범위를 가지며, 5가지의 범주로 나눌 수 있습니다. 이를 이해하면, 서버가 응답하는 코드에 대해 더 잘 이해할 수 있으며, 웹 서버와의 통신에서 발생할 수 있는 문제를 해결하는 데 도움이 됩니다.

반응형

'Web' 카테고리의 다른 글

REST API란 무엇인가?  (1) 2023.02.20
HTTP란 무엇인가? HTTP의 변천사 알아보기  (1) 2023.02.19
댓글