#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
- 권한이나 데이터의 존재 유무 같은 것이다.
- 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 |