서버란 무엇일까? 웹 서버, WAS
서버에 대해서 잘 알려면 네트워크에 대한 개념을 알아야 한다.
네트워크란 여러대의 컴퓨터 또는 장비가 서로 연결이 되어 정보를 주고받을 수 있게 도와주는 기술을 뜻한다. 컴퓨터나 라우터, 허브등의 장비들이 서로의 정보를 주고 받는다.
정보를 주고받기 위해서는 IP주소, 서브넷 마스크, 게이트웨이등의 정보를 설정을 하고 네트워크 프로토콜을 이용해서 통신을 하게 된다.
서버란
사용자가 요청을 할 때 해당 요청에 대한 응답을 수행하는 프로그램이다.
웹에선 브라우저를 이용해서 서버에 정보를 요청하고 전달을 받는다.
웹 서버란
인터넷을 통해 HTTP를 이용하여 웹 상의 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터이다.
우리는 이메일, SNS등의 서비스는 대부분 웹서벌를 통해서 사용할수있게 되었다.
웹 요청 과정
크롬브라우저 > HTTP request > 요청 승인 > HTTP Response > 크롬브라우저 > 전달받은 데이터로 웹 브라우저를 그린다.
API(Application Programming Interface)란
다른 소프트웨어 시스템과 통신을 하기 위해 따라야 하는 하나의 규칙을 정의하는 것
여기서 인터페이스는 서로 다른 두 개의 시스템 혹은 장치사이에서 정보나 신호를 주고받는 경우 그 접점이나 경계면을 의미한다.
API는 하나의 약속이다 약속한 방식의 API요청을 수행하면 정해진 결과물을 반환한다. 예를들어 주문을 하면 그 주문에 해당하는 음식을 가져다주는 식담에 점원이라고 할 수있다.
RESTful API란
API작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처를 의미한다. 인터넷과같은 복잡한 네트워크망에서 통신을 관리하기 위한 하나의 지침이다. REST라는 지침 즉 아키텍처 스타일을 따르는 API을 REST API라고 부른다.
이 아키텍처를 따르는 웹 서비스를 RESTful 웹 서비스라고 한다.
https://dao-blog.tistory.com/41
웹 클라이언트와 서버의 요청과 응답, REST API
웹 클라이언트 클라이언트는 웹에서 서버에 요청을 보내는 주체로써 서버에 HTTP프로토콜의 형식에 맞게끔 정보를 요청하고 응답을 받는다. 웹 브라우저로 요청을 보낼 수 있다. 사용자의 요청
dao-blog.tistory.com
웹서버와 웹 어플리케이션 서버(WAS)
브라우저가 URL을 입력해서 어떤 페이지를 요청했을 때 HTTP의 요청을 받아들여서 HTML같은 문서를 사용자에게 전달해주는 역할을 하는게 웹 서버인데, 그 HTML은 정적인 컨텐츠이다. 어떤 데이터가 바뀌는 상황이 없고 이미 다 만들어져있는 HTML을 정적인 컨텐츠라 한다.
예를들어 로그인을 한다음에 마이페이지를 들어가보면 사용자마다 마이페이지가 다른데 이는 동적인 컨텐츠이다. 그런게 아니라 메인화면같은 똑같은 화면을 보게되고 그 화면을 구성하고있는 HTML은 누구나 똑같이 보이기때문에 이를 정적인 컨텐츠라고 한다.
웹서버의 역할
정적인 컨텐츠 : 이미 완성되어있는 HTML과 같은 문서를 브라우저에게 전달
동적인 컨텐츠 : 브라우저로부터 로그인을 해서 마이페이지를 요청하는 것과 같은 동적인 요청이 들어왔을때는 웹서버는 본인이 처리할 수없기 때문에 그 요청을 WAS에게 전달한다.
WAS 역시 HTTP기반으로 동작하며 웹 서버랑 똑같이 정적인HTML같은것을 전달하는 기능을 전부 수행할 수있다. 하지만
웹 서버와 WAS를 함께 사용하면 효율적이기 때문에 같이 사용한다.