[Way to PM] HTTP 상태 코드, 메서드, 헤더

2024. 1. 19. 11:05[Way to PM] 네트워크 기초

1. 상태코드 존재의 이유

상태 코드는 서버로부터 Request를 전달하는데, 응답의 성공 여부와 정보를 나타낸다.

  • 200 OK: 요청이 성공적으로 처리되었습니다.
  • 404 Not Found: 요청한 자원이 존재하지 않습니다.
  • 500 Internal Server Error: 서버 내부에서 오류가 발생했습니다.

이 세가지는 자주쓰는 상태코드이며 

  • 1xx : 정보(Information) : 요청을 받아들여 처리중
  • 2xx : 성공(Successful) : 요청을 정상적으로 처리했음
  • 3xx : 리다이렉트(Redirection) : 요청을 완료하기 위해서 추가 동작이 필요
  • 4xx : 클라이언트 오류(Client Error) : 서버는 요청을 이해 불가능
  • 5xx : 서버 오류(Server Error) : 서버는 요청을 처리 실패

다음과 같이 크게 5가지 범주로 나눌 수 있다.

 

2. 메서드

*HTTP 메서드는 보통 요청의 의도를 나타낸다. GET은 존재하는 자원에 대한 요청을, POST는 새로운 자원을 생성하는 요청, PUT은 존재하는 자원을 수정하는 요청, DELETE는 존재하는 자원을 삭제하는 요청을 나타낸다.

*HTTP는 요청 메서드를 정의하여 주어진 리소스에 수행하길 원하는 행동을 나타낸다. 간혹 요청 메서드를 "HTTP 동사"라고 부르기도 한다.

 

1) GET 메서드

리소스를 조회하는데 사용되는 가장 기본적인 메서드. GET 메서드를 사용하는 요청은 오직 데이터를 받기만한다.

*추가: 데이터 요청(뉴스 기사, 블로그 글, 제품 목록 등을 서버로부터 가져옴), 검색 기능(검색어  URL 쿼리 파라미터로 전달), 페이지 링크

 

2) POST 메서드

리소스를 생성하는데 사용되는 메서드. 특정 리소스에 엔티티를 제출할 때 쓰이는데, 이는 종종 서버 상태의 변화나 부작용을 야기한다.

*추가: 폼태그를 통해 로그인 폼에서 사용자 정보를 입력할 때 POST방식을 통해 HTTP 요청의 본문에 데이터를 담아 전송

 

3) PUT 메서드

리소스를 수정하는데 사용되는 메서드입니다. PUT 메서드는 목적 리소스 모든 현재 표시를 요청 payload로 바꿈

*payload: HTTP 요청 시에 전송되는 데이터

 

4) PATCH

리소스의 일부를 수정하는데 사용되는 메서드. 

 

5) DELETE

특정 리소스 삭제

3. 헤더

HTTP 요청을 보낼 때, 요청에 대한 응답을 보낼 때 모두 메시지 안에 헤더가 존재

HTTP 헤더는 응답에 대한 추가 정보를 포함. 보통 Key와 Value값의 쌍으로 구성된다.

일반적으로

  • Content-Type : message body의 미디어 타입을 명시해줍니다.
  • Content-Length : 응답의 본문의 길이를 나타냅니다.
  • Set-Cookie : 서버에서 클라이언트 에이전트로 쿠키를 전송합니다.
    • timeout : 유휴 연결이 계속 열려 있어야 하는 최소한의 시간(초)을 말합니다.
    • max : 연결이 닫히기 이전에 전송될 수 있는 최대 요청 수를 말합니다.Keep-alive : 지속적인 연결이 열린 상태로 유지할 기간을 제어합니다.

참고로 message body 본문은 일반적으로 JSON, XML, 텍스트 등과 같은 형식으로 전달됩니다.

 

*미디어 타입:

 

 미디어 타입(Media Type)은 웹에서 전송되는 데이터의 형식을 식별하는 데 사용되는 표준화된 식별자

미디어 타입은 보통 MIME(Multipurpose Internet Mail Extensions) 타입이라고도 불리며, 이는 이메일과 웹에서 다양한 종류의 데이터를 전송하기 위한 확장을 의미한다.

 

 미디어 타입은 주로 HTTP 헤더나 HTML 문서에서 사용되며, 클라이언트와 서버 간에 전송되는 데이터의 종류를 명시합니다. 각각의 미디어 타입은 유니크한 식별자인 MIME 타입으로 표현된다.

 

    • text/plain: 일반 텍스트
    • text/html: HTML 문서
    • application/json: JSON 데이터
    • image/jpeg: JPEG 이미지
    • audio/mp3: MP3 오디오 파일
    • video/mp4: MP4 비디오 파일

MIME 타입은 주로 확장자나 Content-Type 헤더에 기반하여 결정된다. 이를 통해 브라우저나 다른 클라이언트는 받은 데이터를 올바르게 해석하고 처리할 수 있다.