DevOps/DevOps

[Mac OS]HTTP 요청 메소드 및 상태코드 (Postman, OpenWeatherMap 사용)

chanstory 2022. 12. 10. 13:17
반응형

https://openweathermap.org/

 

Сurrent weather and forecast - OpenWeatherMap

Access current weather data for any location on Earth including over 200,000 cities! The data is frequently updated based on the global and local weather models, satellites, radars and a vast network of weather stations. how to obtain APIs (subscriptions w

openweathermap.org

 

HTTP 메소드의 몇가지는 OpenWeatherMap 사이트에서 제공해주는 날씨 데이터 통해 실습해보고자 한다.

- 회원 가입 후 개인 정보에 있는 My API를 확인한다.

 

 

 

https://www.postman.com/

 

Postman API Platform | Sign Up for Free

Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.

www.postman.com

Postman 프로그램을 이용하여 HTTP 메시지에 대한 요청/응답을 확인해 보고자 한다.

- 위 사이트에서 다운로드 후 회원가입 없이 진입한다 (빠르게 하기 위해)

- New Collection 생성

 

HTTP 요청 메소드

- 주어진 리소스에 대한 행동 요청 (GET, POST, PUT, DELETE 등)

 

1. GET : 리소스 수신 요청 (Read)

- 서울의 날씨를 요청한다. (GET 메소드 사용)

- <API값> 에 본인 API 를 입력한다.

 

하단부 결과 확인

Status = 상태코드 (200 OK = 성공적인 요청)

Time = 소요시간

Size = Data Size

 

정상적으로 서울의 경도, 위도, 날씨 상태, 온도, 습도 등의 데이터를 수신한것을 확인할 수 있다.

 

 

2. POST : 리소스 생성 (Create) - JSON 형식 (경량 데이터 교환 형식, 사람과 기계 모두 이해하기 쉽고  서버-클라 교류간 사용)

 

- POST 를 사용하여 리소스 생성 요청

HttpRequest

POST /student

[

 {

  “username”: “가나다”,

  “text”: 1,

  "roomname" : 로비

 }

]

 

- POST 를 사용하여 리소스 생성 요청

HttpResponse

HTTP/1.1 200 OK

[

 {

  "id ": 1,                                         // 리소스에 대한 고유 ID

  “username”: “가나다”,

  “text”: 1,

  "roomname" : 로비

  "date": "2021-04-02 12:00:00".   // 리소스 생성 시간

 } 

]

 

=> 리소스 생성에 대한 필수 항목들을 전부 입력해야 한다.

=> 리소스 고유 ID가 생성되며 이를 이용하여 PUT(수정) 사용

=> POST는 자원에 대한 생성을 담당하며 여러번 같은 요청시 새로운 리소스가 계속해서 생성된다.

 

3. PUT-전체, PATCH-일부 : 리소스 수정 (UPDATE) 

 

- PUT을 사용하여 리소스 수정 요청

=> PUT 요청 시 모든 항목을 입력하여야 하며 미입력 시 Default값이 적용된다.

 

- PATCH를 사용하여 리소스 수정 요청

=> 항목의 일부분만 수정이 가능하다. (나머진 기존 데이터 유지)

 

*****

=> PUT/PATCH 를 통해 같은 요청을 반복해서 보낸다면 같은 리소스를 반환한다. (멱등성)

=> PUT은 대상이 없으면 만들어내고 역동성이 있다.

=> PATCH는 대상이 있어야만 실행된다.

 

4. DELETE : 데이터 삭제

  - 특정 리소스 삭제 시 사용된다. (요청 시 끝에 /clear 붙힘)

 

 

 

HTTP 상태코드

- HTTP 요청에 대한 응답코드

 

* 100번대 (요청 확인 및 프로세스 진행)

- 100 (Continue): 서버로 보낸 요청에 문제가 없으며 다음 요청을  보내도 된다.

- 101 (Switching Protocols): 클라이언트의 헤더를 통해 요청한 것에 따라 서버가 프로토콜을 바꾼다는 것을 응답한다. 

- 103 (Early Hints) : 서버가 응답을 준비하는 동안 사용자가 자원을 미리 읽어 들일 수 있도록 한다.

 

* 200번대 (성공적인 요청 인식)

- 200 (OK) : 요청이 성공했음을 의미한다. (성공의 의미는 HTTP 요청 메소드에 따라 다르다)

- 201 (Create) : 요청이 성공적으로 처리되었으며, 자원이 생성되었다.

- 204 (No Content) : 요청이 성공했으나 현재 페이지에서 벗어나지 않아도 된다. (PUT or DELETE 의 성공 결과로 종종 출력됨)

 

* 300번대 (요청 완료를 위한 추가 조치 필요) 

- 301 (Moved Permanently) : 요청한 리소스가 헤더에 주어진 URL로 완전히 옮겨졌다.

- 302 (Found) : 요청한 리소스가 헤더에 주어진 URL로 일시적으로 옮겨졌다.

 

 

* 400번대 (클라이언트의 요청 문법 오류 or 처리 불가) 

- 400 (Bad Request) : 서버가 클라이언트의 오류를 감지해 요청을 처리할 수 없거나 하지 않는다.

- 401 (Unauthorized) : 유효한 인증 자격 증명이 없기 때문에 요청이 적용되지 않았다.

- 404 (Not Found) : 클라이언트가 요청한 리소스를 서버가 찾을 수 없다. (broken link, dead link 에서 볼 수 있음)

                                   - 리소스가 영구적으로 삭제되었다면 410 상태코드가 출력되어야 한다.

 

* 500번대 (서버가 유효한 요청에 대한 응답 실패)

- 500 (Internal Server Error) : 요청을 처리하는 과정에서 서버가 예상하지 못한 상황에 놓였다.

- 501 (Not Implemented) : 요청을 수행할 수 있는 기능을 서버가 지원하지 않는다.

- 502 (Bad Gateway) : 서버가 게이트웨이나 프록시 서버 역할을 하면서 업스트림 서버로부터 유효하지 않은 응답을 받았다.

 

 

웹페이지에서 F12를 눌러 개발자모드에서 간단하게 요청에 대한 Status를 확인 할 수 있다.

 

 

 

 

참고

https://developer.mozilla.org/ko/docs/Web/HTTP

 

HTTP | MDN

하이퍼텍스트 전송 프로토콜(HTTP)_은 HTML과 같은 하이퍼미디어 문서를 전송하기위한 _애플리케이션 레이어 프로토콜입니다. 웹 브라우저와 웹 서버간의 커뮤니케이션을위해 디자인되었지만, 다

developer.mozilla.org

 

반응형