사실 Web에 대해 정확히 무엇인지 정의하기가 어려웠는데 세션을 통해 Web의 구조에 대해 알게 되어서 좋았다.
웹(Web)이란
웹(Web)? ‘월드 와이드 웹(World Wide Web)’의 줄임말로, 첫 글자를 따서 WWW라고 부르기도 한다. ‘웹(web)’을 영어 뜻 그대로 풀이하면 ‘거미줄’이라는 뜻이며, 이는 ‘세상의 크기만한 거미줄’이라 직역할 수 있다.
웹은 위와 같이 동작한다.
유저(User)가 1번과 같이 웹 브라우저를 통해 www.naver.com 에 접속을 요청한다고 하자. DNS(Domain Name System) 서버로 도메인 이름이 보내지면 DNS는 이를 IP주소(예: 192.0.2.44)로 변환한다.
Hosting
그렇다면 호스팅이란?
호스팅이란 정보의 집약체인 서버의 전체 혹은 일부를 이용할 수 있도록 임대해 주는 서비스를 말합니다.
서버를 관리하기 위해서는 24시간 내내 안정적으로 전기를 공급해야 하고, 빠르고 안정적인 인터넷 회선을 사용해야 하며, 철저한 보안 시스템을 갖추고 있어야 합니다. 따라서 개인이 서버를 관리하기보다 전문 업체의 호스팅 서비스를 사용하는 것이 일반적입니다.
호스팅의 종류
웹 호스팅
웹 호스팅은 여러 고객이 하나의 서버를 함께 사용하는 형태입니다. 하나의 서버를 나누어 쓰기 때문에 저렴하게 이용할 수 있고, 호스팅 업체의 통합 관리를 받기에 편리합니다. 그러나 사용할 수 있는 하드웨어가 제한적이라는 단점도 있습니다.
서버 호스팅
서버 호스팅은 고객이 단독 서버를 사용하는 형태입니다. 넓은 하드웨어 공간을 사용할 수 있고, 서버 운영/관리에 대한 직접적인 권한을 가질 수 있습니다. 또한, 빠른 데이터 전송 속도도 누릴 수 있지요. 하지만 단독으로 서버를 이용하는만큼 비용이 높은 편 입니다. 대기업이나 대형 포탈 혹은 대형 오픈마켓과 같이 많은 데이터를 사용하는 기업들이 사용하기 좋습니다.
클라우드 서버
서버 호스팅을 가상화한 것으로, 가상 서버를 단독으로 사용할 수 있는 형태입니다. 고객이 필요할 때마다 서버 자원을 늘리거나 축소하여 유연하게 서버를 이용할 수 있습니다. 하지만 하나의 가상 서버에 문제가 생기면 연결된 다른 가상 서버에도 문제가 생길 수 있다는 단점이 있지요.
URL
URL(Uniform Resource Locator 또는 web address, 문화어: 파일식별자, 유일자원지시기)은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 즉, 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다. 흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다. 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 한다.
FTP 프로토콜인 경우에는 FTP 클라이언트를 이용해야 하고, HTTP인 경우에는 웹 브라우저를 이용해야 한다. 텔넷의 경우에는 텔넷 프로그램을 이용해서 접속해야 한다.
IP, Domain, DNS
IP 주소는 인터넷으로 통신하는 각 device(컴퓨터, 통신장비)에 부여된 고유한 값이다.
Domain은 문자로 된 고유 주소이다.
DNS는 도메인과 IP주소 간의 매핑을 관리하는 일종의 전화번호부와 같은 기능을 한다. DNS 서버란 도메인과 서버를 연결해주는 중간 서버로, 도메인 이름을 인터넷상의 주소(IP주소)로 변환시켜 원하는 컴퓨터를 찾아갈 수 있도록 한다. DNS 서비스의 예로 AWS, Cafe 24,가비아가 있다.
그 다음, 웹 브라우저는 Web Server에 IP주소로 접속 요청을 보내고, 그 요청은 WAS를 거쳐 DB에서 요청된 파일을 가져온다. 그리고 그 파일은 다시 WAS를 거쳐 웹서버를 통해 웹브라우저에게 전달된다. 이로써 우리는 웹 브라우저 상에 네이버 화면을 볼 수 있다.
Web Server 와 WAS(Web Application Server)
Web Server 는 정적 페이지(html, jpeg, css 등)를 제공하는 서버이다. 대표적인 웹 서버에는 Apache, IIS, Netscape가 있다.
WAS 는 html만으로 할 수 없는 데이터베이스 조회나 다양한 로직처리 같은 동적인 컨텐츠를 제공하기 위해 만들어진 서버이다. 대표적으로 Tomcat, Jeus, JBoss가 있다. 때문에 웹 서버를 앞에 두고 필요한 WAS를 웹서버에 플러그인 형태로 설정하여 효율적으로 처리되게 한다.