HTTP 상태코드 & 메서드

이태곤·2023년 8월 21일
0

Network

목록 보기
8/23
post-thumbnail

1. HTTP 상태코드

  • HTTP Status code: HTTP 요청에 대한 서버의 응답 상태를 나타내는 숫자 코드
    • 1xx (Informational): 조건부 응답
      • 요청이 현재 처리중인 상태
    • 2xx (Successful): 성공
      • 200 OK: 요청을 정상적으로 처리했음을 의미
      • 201 Created: 요청이 성공하고 새로운 리소스가 생성 됨
    • 3xx (Redirection): 리다이렉션 완료
      • 301 Moved Permanently: 요청한 리소스의 URI가 변경되어서, 새로운 location 정보 제공
      • 304 Not Modified: 요청한 리소스가 수정되지 않아서 본래 서버가 아닌 프록시 서버로부터 캐싱 된 정보를 클라이언트에게 제공
    • 4xx (Client Error): 요청 오류
      • 400 Bad Request: 클라이언트의 요청이 잘못 됨
      • 401 Unauthorized: 클라이언트의 인증이 되지 않았음
      • 404 Not Found: 요청한 정보를 서버에서 찾을 수 없음을 의미
    • 5xx (Server Error): 서버 오류
      • 500 Internal Sever Error: 서버에 오류가 발생하여 해당 요청을 처리할 수 없는 상태
      • 502 Bad Gateway: 게이트웨이 또는 프록시서버에 오류 발생
      • 504 Gateway Timeout: 게이트웨이 또는 프록시서버가 정해진 Timeout시간동안 클라이언트의 요청을 처리 못함

2. HTTP 메서드

  1. GET: 리소스 조회
    1. URL을 사용하여 데이터를 요청하며, 요청의 파라미터는 URL에 포함
      • 2000자 미만
      • URL을 기반으로 데이터를 요청하기에 요청의 파라미터가 브라우저 기록에 남는다.
    2. 캐싱 가능
      • GET 요청의 응답은 캐싱될 수 있으며, 브라우저 및 중간 캐시 서버에서 캐시하여 이후 동일한 요청에 대한 응답을 빠르게 제공
      • URL에 데이터가 노출되므로 민감한 정보(예: 아이디, 비밀번호)는 GET 요청의 URL 파라미터로 전송하지 않는다.
      • ASCII 문자열 형식
  1. POST: 요청 데이터 처리, 주로 등록에 사용
    1. HTTP message body에 데이터를 담아 요청
      • 데이터의 길이제한이 없다.
    2. URL 기반으로 요청하지 않기 때문에 브라우저에 기록이 남지 않는다.
      • 사용자 이름, 비밀번호와 같은 민감한 정보를 안전하게 전달하는 데 적합
    3. POST 요청은 HTTP body를 이용하므로 XML, JSON, 문자열, 바이너리 데이터 등 다양한 형태의 데이터를 전달
    4. POST 요청은 주로 데이터의 생성 또는 업데이트와 같이 서버의 상태를 변경하는 용도로 사용되기 때문에 캐싱 불가능
  1. PUT: 업데이트를 위한 HTTP 요청 메서드

    • 업데이트하는 데이터의 전체를 서버에 전송하여 리소스 전체를 업데이트
    • 해당 리소스가 없는 경우에는 새로 생성
    • 과정: 요청을 보낼 때 전체 데이터를 서버에 전송 → 요청 데이터와 실제 데이터를 수정 후 새롭게 생성된 데이터로 전체 교체
      1. {a : 3, b : 4}에서 b → 5로 수정
      2. {a : 3, b : 5} 요청
    • 데이터의 일부를 전송하면 전송하지 않은 값들은 NULL값으로 대체
  2. PATCH: 업데이트를 위한 HTTP 요청 메서드

    • 업데이트하는 데이터의 일부분만 서버에 전송하여 리소스의 일부만 업데이트
    • 과정: 요청을 보낼 때 수정하고자 하는 데이터의 일부분만 서버에 전송 → 일부분의 데이터만 교체
      1. {a : 3, b : 4}에서 b → 5로 수정
      2. {b : 5} 요청
    • 리소스를 효율적으로 업데이트하고 필요한 변경 사항만 전송
  3. DELETE: 지정된 리소스를 삭제

    • DELETE 요청이 성공하면 일반적으로 200 OK 또는 204 No Content 상태 코드가 반환
    • 리소스가 존재하지 않으면 404 상태 코드 반환
    • 메서드가 멱등성이 없다.
      • DELETE 메서드는 요청을 반복적으로 실행하면 같은 리소스가 여러 번 삭제될 수 있으므로 안전하지 않다.

0개의 댓글