개발일기

2xxx - 성공 본문

Spring/(김영한님)HTTP웹 기본 지식

2xxx - 성공

한둥둥 2023. 3. 15. 12:20

2xx (Successfult)

클라이언트의 요청을 성공적으로 처리 

 

  • 200 OK
  • 201 Created
  • 202 Accepted
  • 204 No Content 

200 OK 요청 성공 

 

요청

====================================================

 GET /members/100 HTTP/1.1 

Host: localhost:8080 

====================================================

 

응답

=====================================================

HTTP/1.1 200 OK

Content-Type: application/json 

Content-Length : 34

{

      "username" : "young" ,

      "age" : 20

}

======================================================

 

GET 하고 /members/100 의 리소스를 주세요라고 요청을하면 서버에서 결과를 잘 처리해서 응답을 하면 200 OK를 내리면 된다.  

이거는 우리가 가장 많이 보는 케이스이다. 

 

 

201 Created 요청 성공해서 새로운 리소스가 생성됨 

 

요청

============================================================

POST /members HTTP/1.1 

Content-Type : application/json 

{

    "username" : "young",

    "age" : 20

}

=============================================================

 

응답

==============================================================

HTTP/1.1 201 Created 

Content-Type : application/json

Content-Length: 34

Location: /members/100

{

     "username" : "young",

     "age" : 20

}

===============================================================

 

username이 young 그리고 나이가 20살인 사람을 신규 유저로 등록해주세요라고 클라이언트가 요청을 한다. 

POST인 경우 서버에서 자원을 생성했다. 자원을 생성하고, URI에 대한 관리도 서버에서 했었다. 

신규리소스를 만들고 리소스에 대한 URI를 서버에서 알고 있으면 생성된 리소스는 응답의 Location 헤더 필드로 식별 

HTTP에 201로내리고 Http Header에 Location이라고 넣어준다. 그리고 여기가 새로 생성된 리소스의 URI를 넣어주면 된다. 

 

202  Accepted (요청이 접수되었으나 처리가 완료되지 않았음) 

  • 배치 처리 같은 곳에서 사용 
  • 예) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리함. 

204 NO Content (서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 )

  • 예) 웹 문서 편집기에서 save 버튼
  • save 버튼을 눌러도 같은 화면을 유지해야 한다.
  • save 버튼의 결과로 아무 내용이 없어도 된다.
  • 결과 내용이 없어도 204 메시지(2xx)만으로 성공을 인식할 수 있다. 

웹 브라우저에서 예를 들어서 웹 문서의 편집기 같은 것이 있다. 웹으로 된 편집기가 있음. 웹 문서에서 저장 버튼을 누른다. 

데이터가  POST여서 서버로 넘어간다. 서버에서 이를 저장하고 응답을 내려줌. 저장을 받고 저장이 되었다고 OK만 받고 싶지 본문을 받아봐야 할 것이 없다. 

 

전부다 사용하지 않고 200하고 201만 사용하는 경우가 많음.