서버는 '제공한다'는 뜻을 가진 'serve'에 사람이라는 뜻을 나타내는 'er'을 붙인 단어이다. 위의 사전의 뜻을 보면 공통적으로 뭔가를 제공한다는 것을 알 수 있다. 컴퓨터에서는 서버는 클라이언트에게 여러 가지 서비스를 제공하는 것을 뜻한다.
통신을 하지 않는 서버도 있다. 단지 서버는 자원을 가지고 있고, 그것을 어떠한 방법으로든 공유할 수 있으면 된다. 하지만 웹 서버는 HTTP 통신을 통해 자원을 공유하고, 그에 따른 규약을 가진다.
HTML (Hypertext Markup Language,하이퍼텍스트 마크업 언어)는 프로그래밍 언어는 아니고, 우리가 보는 웹페이지가 어떻게 구조화되어 있는지 브라우저로 하여금 알 수 있도록 하는 마크업 언어입니다. 이는 개발자로 하여금 복잡하게도 간단하게도 프로그래밍 할 수 있습니다. HTML은 elements로 구성되어 있으며, 이들은 적절한 방법으로 나타내고 실행하기 위해 각 컨텐츠의 여러 부분들을 감싸고 마크업 합니다.
HTML의 탄생으로 논문 작성 방법에 대한 일관성 생김.
브라우저란 웹 페이지, 이미지, 비디오 등의 콘텐츠를 수신, 전송 및 표현하는 소프트웨어다.
브라우저의 탄생으로 HTML로 작성된 문서를 표현(해석 or 렌더링)할 수 있게 됨.
URL(Uniform Resource Locator)이란 사용자가 원하는 정보의 위치와 종류를 파악할 수 있도록 웹페이지의 정보 구조를 반영한 것이다.
URL의 탄생으로 서버가 들고 있는 자원을 외부에 노출시킬 수 있는 표기법을 발견함.
HTML파일을 가진 웹서버 컴퓨터가 어떻게 HTML을 필요로 하는 클라이언트에게 정보를 전달할 것인가
에 대한 형식과 방법에 대해 정의되어 있다.
HTML을 송수신하는 규약을 만들고, 해당 규약을 바탕으로 HTML 파일을 공유할 수 있게 되었다.
웹서버는 수동적인 애플리케이션이다.
클라이언트는 필요로 하는 자원이 있을 때, URL 요청을 통해 웹서버에게 HTML 파일을 요청한다.
이것을 GET 요청이라고 한다.
클라이언트는 다시 자원 요청이 필요하면 새로운 GET요청을 해야 한다. 그 이유는 웹서버로부터 정보를 응답받은 뒤 소켓이 유지되지 않기 때문이다. 이렇게 클라이언트의 상태를 저장하지 않는 서버를 stateless 무상태 서버라고 한다.
아파치는 웹서버이다. 단순히 브라우저가 이해할 수 있는 파일을 HTTP 프로토콜을 통해 공유하는 소프트웨어이다.
현재의 HTTP 프로토콜은 GET 요청만 있지 않다.
아파치를 설치합니다.
톰켓을 설치합니다.
conf/server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context docBase="myapp-0.0.1-SNAPSHOT" path="/" reloadable="true" />
</Host>
myapp-1.0.war 파일을 아파치/톰켓을 start한 상태에서 webapps 폴더에 배포해보자. (복사 붙여넣기)