#14. REST API

2022. 12. 3. 21:19
Update Log
| 22. 12. 3 First Upload
HTTP
  • HTTP
    • HTTP 는 웹에서 문서를 주고받을 수 있는 프로토콜이다.
    • HTTP 는 " Server " 와 " Client" 라는 두가지 역할이 있다.
    • HTTP Request 전송시, 클라이언트가 HTTP method를 포함한  Request Header 를 보낸다.
    • HTTP method 는 "서버" 에게 URL 로 식별된 데이터로 수행할 작업을 "서버" 에게 알려준다.
RESTful API 에서 '클라이언트' 가 '서버' 에게 보내는 HTTP method
  • GET
    • 기존 데이터를 요구할때
    • 웹 URL을 브라우저에 입력할때를 말한다.
  • POST
    • 새로운 것을 생성해달라고 요구할 때
    • 회원가입을 하여 DB에 정보를 등록할때를 말한다.
  • PUT
    • 기존 값을 새로운 값을 업데이트를 요구할때
    • 회원 정보를 수정할때를 말한다.
    • GET 과 반대적인 의미이다.
  • DELETE
    • 기존의 데이터를 삭제할떄

 

HTTP: RESTful
  • "resquest" 는 Server 에게 URL을 통해서 전달되어진다.

  • "Request" 에는 Optional HTTP Request Body 가 붙을 수 있음.
    • 웹 브라우저가 보내는 것이다. 즉 내가 보내는 것이 아님.
    • 하지만 우리가 직접 보낼 수도 있긴 하다. 
    • 일반적으로는 Json Format 을 사용한다.
  • Server 한테 오는 "Response" 와 같은 경우는 Status Code 이거나 HTML, XML,JSON 이다.
    • Status code
      • 권한이나 데이터의 존재 유무 같은 것이다.
  • "REST API" 를 제공하는 웹 서비스를 "Restful" 하다고 한다.

 

 

HTTP Request Body Example

 

 

 

RESTful Hypothetical(가상의) Light Switch

  • 첫번째로 "Cell Phone (= Client)" 가 "Server" 에게 'Request'를 한다.
  • Wi-Fi Switch 에서 주기적으로 자신이 꺼져야 하는지에 대해서 'Server' 에게 물어본다.
  • "Server" 는 그러면 이때 Wi-Fi switch에게 꺼져야 할때 대답해주고, 이때 대답 여부에 따라 꺼지거나 가만히 있는다.
    • 스위치에는 배터리가 없다고 가정했기 때문에 무엇을 계속 받으려고 기다릴 수 없다.
    • Beacon 처럼 주기적으로 깨어나서 물어보고 아니라면 Sleepmode 이다.
    • 즉 전력이 저전력이다.
  • HTTP 는 Client 가 Server 에게 Request 를 보내는 것으로 시작한다는 특성이 있다.
  • 이때 사용하는 통신은 TCP/IP 통신이다.

 

 

HTTP is Too heavy for IoT
  • HTTP/1, HTTP/2 는 TCP 를 사용한다.
    • 최근에 HTTP/3이 개발이 되었고, 이 친구는 UDP 기반이다.
    • Header는 줄지만, 적어도 잘 갔는지는 Checking 한다.
  • TCP는 알다시피 , Connection Oriented 기반이다.
  • TCP 는 서버와 통신을 시작할때는 3-Way Handshake 을 한다

  • TCP 는 서버와 통신을 끊을때는 2-Way termination을 한다.
  • TCP 는 항상 ACK 을 전송한다.
  • 이는 너무 많은 Work 이다 IoT 에게는...

'STUDY > 사물인터넷' 카테고리의 다른 글

#16. MQTT  (0) 2022.12.03
#15. CoAP  (0) 2022.12.03
#13. IEEE 802.16  (1) 2022.11.30
#12. NB -IoT  (1) 2022.11.30
#13. 5G NR  (0) 2022.11.28

BELATED ARTICLES

more