서버 - 클라이언트로부터 요청을 받아, 요청한 것을 넘겨 줌, 사용자가 웹 브라우져를 통해 서버에 자원을 요청하면 그 요청에 맞는 자료를 넘겨주는 역할
클라이언트 - 서버에 자료를 요청하고 요청한 자료가 도착하면 사용자에게 그 내용을 보여주는 역할
둘 사이의 의사소통을 위해 HTML과 HTTP가 필요하다.
HTML => 브라우져가 서버의 전달사항을 어떤 식으로 보여줘야 하는 지 알려주는 Language
HTTP => 클라이언트와 서버간에 대화하기 위해 만들어진 규약
보통 클라이언트가 요청하면 서버에서 응답을 보내주는 형식으로 짜여 있다.
클라이언트에서 HTTP를 이용해 자원을 요청하면 서버는 그 요청에 맞는 자료를 HTTP에 HTML을 실어 전송한다. 그러면 Browser는 HTML을 해독하여 사용자에게 보여준다.
HTTP 요청에는 HTTP Method가 들어 있다.
HTTP Method 중 가장 중요하고 자주 사용 되는 것은 Get 과 Post 이다.
Get의 경우 자료를 요청할 때 자주 쓰인다. 단순하게 자료를 받아 오는 것이기에 멱등 - 즉 같은 동작을 여러번 반복해도 문제가 생기지 않는다.
Post의 경우 서버에 자료를 요청할 때 사용자가 몇 가지 정보를 함께 제출하여 그 정보에 따라 응답을 받을 수 있다.
사실 Get으로도 정보를 보낼 수 있지만 그 정보가 URL 뒤에 붙어서 나오기에 보낼 수 있는 양이 한계가 있고 URL 창에 정보가 노출되어 보안상 중요한 내용을 보내기에 적합하지 못하다. 그리고 Get으로 보내는 요청은 URL 뒤에 붙어 나오기에 즐겨찾기에 추가 할 수 있다.
HTTP 응답은 Header와 Body로 구성되어 있다.
Header => 사용된 프로토콜, 보내준 요청이 성공했는지, 몸체에 포함 된 컨텐츠 종류가 무엇인지 등...
Body => HTML과 같은 컨텐츠
사실 웹서버는 정적인 정보만을 제공할 수 있다. 그렇기에 웹 서버에 동적인 서비스를 제공하기 위해서는 같은 컴퓨터에 있는 다른 App들의 도움이 필요하다. 이러한 App들을 CGI라 한다.
그리고 이러한 서블릿을 원할하게 돌아가기 위해서는 많은 도움이 필요하다. 서블릿 클래스 생성과 로드 그리고 스레드 관리 등 많은 일들을 해야 한다. 이와 같은 일을 하기 위해서 컨테이너가 생겼다. Tomcat도 이러한 컨테이너의 일종이다.
댓글 없음:
댓글 쓰기