네트워크란?
•
컴퓨터, 라우터, 스위치, 허브 등의 장비들이 각각의 역할을 수행하여 정보를 주고 받습니다.
•
서로 정보를 주고 받기 위해서는 IP 주소, 서브넷 마스크, 게이트웨이등의 정보를 설정하고 네트워크 프로토콜을 이용하여 통신을 하게 됩니다.
Client? Server?
클라이언트(브라우저) 는 위 그림과 같이 인터넷을 통해 네트워크로 연결된 서버에 요청을 보낸다. 서버는 요청에 대한 응답을 돌려준다.
그럼 처음에 어떻게 서버를 특정 할 수 있을까?
IP주소를 통해서 서버 또는 컴퓨터의 위치를 특정하게 된다.
이전에 정리했지만 내부아이피, 외부아이피가 존재한다. 외부아이피가 직접적인 통신사와 인터넷이 연결된 실제 IP 주소이다. NAS서버 컴퓨터를 만지작거리면서 이 부분에 대해서 조금 학습하게 되었다. 외부 IP주소는 기본적으로 공개되어있지 않지만, 쉽게 찾아 볼 수도 있다.
대부분 192.0.8.1과 같은 아이피 주소는 내부아이피 주소이다. 이것은 보통 허브, 공유기와 같은 1차 외부 IP를 받아내서 홈 네트워크로 구성된 내부 네트워크의 가상 주소이기 때문에, 외부에서는 접속되지 않는다. 기본적으로 HTTP URL을 입력하면 포트라는 것이 생략되어있는데, 기본 브라우저 요청 포트는 80번으로 설정된 경우가 많다.
그럼 웹서버는 무엇인가?
웹 서버도 위 개념과 다른 부분이 없다. 웹 서버는 클라이언트로부터 HTTP 요청을 받고, “웹서버”를 통해서 요청에 대한 처리, 가공이 진행 된 후, HTML, CSS 등 을 담아서 클라이언트에 반환 하는 것이다.
API는 그럼 무엇인가?
웹 서버에서 클라이언트 요청에 따라 서버가 API를 통해 무언가 가공하고 반환하는 그림을 볼 수 있다. 그럼 API는 무엇인가?
API(application programming interface)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다. 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성합니다.
클라이언트는 손님, 서버가 식당이라고 하자. 손님이 어떠한 요청 할 때 식당은 어떤 행동을 하는가?를 주목해서 보아야 한다.
이러한 HTTP 요청을 상황에 따라 적절한 메소드 GET, POST, PUT 등으로 작동하도록 설계 해둔 것을 RESTful하게 API를 설계 했다라고 부를 수 있다.
REST 아키텍처 스타일을 따르는 API를 REST API라고 한다.
Web Server와 Web Application Server의 차이?
쉽게 말하면 웹 서버에 동적인 처리를 맡길 수 있는 부분이 더 붙은 웹 서버이다.