이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[HTTP] 상태코드

  • 2022.08.12 20:00
  • Computer Science/Computer Network
반응형

 

 

 

클라이언트가 보낸 요청에 대한 처리 상태를 응답 메시지에서 상태코드를 통해 알려준다.

 

100번대 (Informational) : 요청이 수신되고 처리중

200번대 (Successful) : 요청 정상 처리

300번대 (Redirection) : 요청이 완료되려면 추가 행동이 필요

400번대 (Client Error) : 클라이언트 오류 

500번대 (Server Error) : 서버 오류 

 

 

 

200번대

 

 

200 OK : 요청 성공을 의미함

201 Created : 요청에 성공하고 새로운 리소스가 반환됨 (POST 메서드를 사용한 경우 URI도 함께 반환)

202 Accepted : 요청이 접수됐지만 처리되진 않음

204 : No Content : 요청을 성공적으로 수행했지만 본문에 보낼 데이터가 없음. (임시저장을 생각해보자.)

 

 

 

 

300번대

 

 

300번대의 응답 결과에 Location 헤더가 있으면 해당 위치로 자동으로 이동한다. (Redirect)

 

 

 

 

기존 이벤트 페이지의 URL이 /event 였고, 바뀐 이벤트 페이지의 URL이 /new-event 라고 하자.

 

이 때 /event 를 웹 브라우저 입력해도 /new-event 로 이동시켜주는 작업을 리다이트라고 한다.

 

 

영구 리다이렉션

301, 308에 해당한다.

 

301은 리다이렉트 시 요청 메세지가 GET으로 바뀌며 본문이 제거될 수 있고, 308은 요청 메서드를 유지한다.

 

 

 

 

 

308번은 메세지를 유지하지만.. 어차피 리다이렉트된 주소에 정보를 다시 입력해야 하는 경우가 많아 308보다는 301을 많이 사용한다.

 

 

 

일시적 리다이렉션

302 307 303에 해당한다.

 

자주 사용한다.

 

302 Found : 301처럼 요청 메서드를 GET으로 바꾸고 본문이 제거될 수 있다. (보통 많이 씀)

307 Temporary Redirect : 요청 메서드와 본문을 유지한다.

303 See Other : 요청 메서드를 GET으로 바꾼다.

 

 

 

 

 

리다이렉션을 사용하는 대표적인 예시이다.

 

쇼핑몰에서 POST 메서드로 주문을 넣었다고 하자. 주문을 넣은 결과 화면에서 새로고침하면 해당 URL으로 주문이 또 들어가게 돼 중복 주문이 발생한다.

 

 

 

 

 

리다이렉션을 사용해보자.

 

POST 메서드로 주문을 넣는다. 이 때 상태코드로 200 OK 대신 302 Found를 넘겨준다.

이제 결과 화면으로 리다이렉트됐다. 여기서는 새로고침해도 GET 메서드이기 때문에 주문 정보를 조회한다.

 

실수로 새로고침했을 때 중복 주문이 쌓이는걸 방지한다.

 

 

 

307 303을 사용하는게 좋지만 많은 애플리케이션의 기본값은 302이다.

메서드가 GET 으로 변해도 상관없으면 기본값인 302를 사용하자.

 

 

기타 리다이렉션

300 304에 해당한다.

 

300 Multiple Choices : 안씀

304 Not Modified : 리소스가 수정되지 않았으니 캐시를 그대로 쓰라고 알려준다. (캐시로 리다이렉트)

 

 

 

 

400 / 500번대

 

 

400번대 오류는 클라이언트에서 오류가 발생해 몇 번을 재시도해도 오류가 고쳐질 가능성이 없다.

하지만, 500번대 오류는 서버에서 발생한 오류로 서버에서 오류가 고쳐진다면 재시도 시 고쳐질 가능성이 있다.

 

400 Bad Request : 클라이언트의 잘못된 요청으로 서버가 요청을 처리할 수 없음.

401 Unauthorized : 클라이언트가 해당 리소스에 대한 인증이 필요함 

 * Authentication : 로그인 Authorization : 권한 부여

403 Forbidden : 서버가 요청을 이해했지만 승인을 거부함. Authorization과 연관된 문제일 가능성이 높다.

404 Not Found : 요청 리소스를 찾을 수 없음.

 

500 Internal Server Error : 서버 문제로 오류 발생. (애매하면 500)

503 Service Unavailable : 서비스 이용 불가. (잠시 서버를 내려놓는 경우)

 

반응형

'Computer Science > Computer Network' 카테고리의 다른 글

[HTTP] HTTP 쿠키와 세션  (0) 2023.06.12
[HTTP] 헤더 / 쿠키와 캐시  (0) 2022.08.13
[HTTP] HTTP 메서드와 활용  (1) 2022.08.12
[HTTP] URL / HTTP 기본  (1) 2022.08.12
[HTTP] 클라이언트와 서버 간의 통신 (TCP, UDP, IP, DNS)  (0) 2022.08.10

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [HTTP] HTTP 쿠키와 세션

    [HTTP] HTTP 쿠키와 세션

    2023.06.12
  • [HTTP] 헤더 / 쿠키와 캐시

    [HTTP] 헤더 / 쿠키와 캐시

    2022.08.13
  • [HTTP] HTTP 메서드와 활용

    [HTTP] HTTP 메서드와 활용

    2022.08.12
  • [HTTP] URL / HTTP 기본

    [HTTP] URL / HTTP 기본

    2022.08.12
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (665) N
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (142)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (16)
    • 💬 기록 (10)
    • 📚 공부 (1) N
    • 📝 낙서장 (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바