본문 바로가기
computer science

하루에 하나씩 배우는 컴퓨터 사이언스 개념: 메서드와 상태코드 이해(HTTP 프로토콜)

by vita12321 2023. 9. 23.
728x90
반응형

하루에 하나씩 배우는 컴퓨터 사이언스 개념 시리즈에서 오늘은 '메서드와 상태코드 이해(HTTP 프로토콜)'에 대해 자세히 알아보겠습니다. HTTP 프로토콜에서의 메서드와 상태 코드 개념을 중심으로, 인터넷 상에서 정보가 어떻게 교환되는지 깊이 있게 살펴보겠습니다.


1. HTTP 메서드 소개

 

HTTP(Hypertext Transfer Protocol) 요청을 보낼 때 사용하는 방법을 결정하는 것이 바로 '메서드'입니다. 클라이언트(일반적으로 웹 브라우저)가 서버에 어떤 동작을 수행하길 원하는지를 나타내며, 주요한 메서드는 GET, POST, PUT, DELETE 등이 있습니다.

 

  • GET:
    서버에서 특정 리소스를 가져오기 위해 사용됩니다. URL에 데이터를 포함하여 전송합니다. GET 요청은 idempotent 즉, 동일한 요청을 여러 번 보내도 결과가 동일하다는 특징이 있습니다.

 

  • POST:
    서버에 특정 리소스를 전송하기 위해 사용됩니다. 데이터를 요청 본문(body) 안에 포함하여 전송합니다. POST 요청은 일반적으로 서버의 상태나 데이터를 변경하기 위해 사용됩니다.

 

  • PUT:
    서버의 특정 리소스를 수정하기 위해 사용됩니다. PUT 요청 역시 idempotent 한 성질을 가지며, 지정된 URL의 리소스가 이미 있다면 그것을 수정하고 없다면 새로 만듭니다.

 

  • DELETE:
    서버의 특정 리소스를 삭제하기 위해 사용됩니다. DELETE 또한 idempotent하며 해당 URL의 리소스를 제거합니다.

2. HTTP 상태 코드 소개

 

HTTP 응답에 포함된 '상태 코드'는 클라이언트가 보낸 요청 처리 결과를 나타내는 세 자리 숫자입니다. 각 숫자 범위마다 다른 종류의 응답을 나타냅니다:

1xx (Informational): 
이 범위의 상태 코드들은 임시 응답으로 클라이언트가 추가 조치없이 대기하거나, 요청을 계속 진행해야 함을 나타냅니다. 

예를 들어, '100 Continue'는 클라이언트가 요청의 일부를 서버에 보낸 경우에 사용됩니다.

2xx (Success): 
이 범위의 상태 코드들은 클라이언트의 요청이 성공적으로 수행되었음을 나타냅니다. 
가장 흔히 볼 수 있는 '200 OK'는 서버가 요청을 제대로 처리하였음을 의미합니다. 
또한 '201 Created'는 새로운 리소스가 성공적으로 생성되었음을 알립니다.

3xx (Redirection): 
이 범위의 상태 코드들은 클라이언트가 추가 조치를 취해야 합니다. 
예를 들어, '301 Moved Permanently'는 리소스가 영구적으로 다른 URL로 이동되었음을 나타내며, 새로운 URL은 응답 내 Location 헤더 필드에 제공됩니다. 
또한 '304 Not Modified'는 리소스가 변경되지 않았으므로 클라이언트가 로컬 복사본을 재사용할 수 있음을 알립니다.

4xx (Client Error): 
이 범위의 상태 코드들은 클라이언트 오류를 나타냅니다. 
가장 잘 알려진 '404 Not Found'는 요청한 리소스가 서버에 없음을 의미합니다.
'403 Forbidden'은 서버에서 접근 거부 오류 발생시 반환됩니다.

5xx (Server Error): 
이 범위의 상태 코드들은 서버 오류를 나타냅니다. 
예를 들어, '500 Internal Server Error'는 서버 내부 오류 때문에 요청 처리 실패 시 반환된다.
'503 Service Unavailable’은 일시적인 과부하나 서비스 중단으로 인해 서버가 요청을 처리할 수 없을 때 반환됩니다.

 

이렇게 다양한 상태 코드들은 클라이언트와 서버 사이의 통신 상태를 정확히 나타내며, 오류 발생 시 그 원인을 파악하는데 도움을 줍니다.


3. 실제 예시를 통한 이해

 

웹 브라우저에서 어떤 웹 페이지(URL) POST 방식으로 데이터(: 로그인 정보)를 전송하는 경우에 대한 과정을 자세히 알아보겠습니다.

 

1) Request 발생:

먼저 사용자가 로그인 정보를 입력하고 '로그인' 버튼을 클릭하면, 브라우저(클라이언트)는 해당 웹 서버에 POST 방식의 HTTP request를 보냅니다. 이 때 request 메시지는 메서드(POST), URL(로그인 처리 주소), 그리고 필요한 헤더 정보들과 함께 사용자가 입력한 데이터를 본문(Body)에 담아 보낼 것입니다.

 

2) Response 반환:

웹 서버(Server)는 받은 request 정보로 로그인 처리 후 결과를 HTTP response 메시지로 클라이언트에게 보낼 것입니다. 만약 로그인이 성공적으로 처리되었다면, 상태 코드(Status Code) '200'과 함께 성공 메시지가 본문(Body) 안에 담겨 있을 것입니다. 만약 로그인 정보가 잘못되었다면, 상태 코드 '401 Unauthorized'와 함께 오류 메시지를 반환할 수 있습니다.


4. 결론

 

오늘 배운 내용으로 '메서드와 상태코드 이해(HTTP 프로토콜)'에 대해 자세히 알아보았습니다. HTTP 프로토콜에서의 메서드와 상태 코드는 인터넷상에서 정보가 교환되는 기본적인 방식을 나타냅니다.

 

HTTP 프로토콜은 우리의 일상생활과 밀접하게 연결되어 있으며, 많은 애플리케이션에서 기본적으로 사용하는 기술입니다. 따라서 HTTP 프로토콜의 다양한 요청 메서드와 응답 상태 코드를 이해하는 것은 컴퓨터 네트워크와 인터넷 기술에 대한 깊은 이해를 위해서 필수적입니다.

 

하지만 웹과 네트워크 환경은 복잡하므로 다양한 고급 네트워크 개념과 프로토콜, 그리고 최신 웹 기술들에 대해서도 계속 배우고 탐구하여 더욱 세밀하고 깊이 있는 지식을 쌓아가야 합니다.

 

다음 시간에는 'RESTful API'에 대해서 알아보겠습니다. RESTful API HTTP 메서드와 상태 코드를 효율적으로 활용하여 클라이언트-서버 간 통신을 설계하는 방법론 중 하나입니다.

728x90
반응형

 

728x90
반응형