Web : 정적 page VS 동적 page
2019/12/14 - [language/web] - Web : HTML의 정의, 역사
HTML은 말그대로 웹 문서를 만드는 언어다.
"웹 문서" 라고 하면, 정적인 페이지를 의미한다.(실제로 이미지 파일과 같이 static file이라고 합니다)
웹 문서의 본래 목적은 무수한 지식이 링크를 통해서 연결이 되는거에 목적을 두고 있다.
그래서 World Wide Web이라고 부른다. 모든 web page들이 거미줄 처럼 연결되어있다는 뜻이다.
Static page의 한계점
HTML을 이용한 웹 문서의 한계는 문서를 만들때마다 새로운 파일을 만들어야한다.
page의 규모가 커질수록 , 그에 따른 자원의 낭비 + 관리하는 인적자원의 낭비가 너무 심하다.
따라서 이걸 조금 더 dynamice하게 만들어서 데이터베이스나 여러가지와 연동을 할 수 있게 만들어, 하나의 파일로 많은 문서들을 보여줄 수 있게끔 해주는게 이제 '서버사이드 스크립트' 언어다.
page에서 사용자가 어떤 접근, 어떤 request을 했는지에 따라 페이지를 다르게 구성하는 것을 HTML 파일에서 구성을 하면 JavaScript를 이용하는데, 이때 스크립트만 바꾸어주면 충분히 하나의 page로 표현이 가능하다.
반면 server-side script로 만들면 사용자는 이미 만들어진 페이지를 받기 때문에 이러한 행동을 쉽사리 할 수 없게 된다.
흔히 JSP니 PHP니 하는 것들이 그런 것들이구요.
이런 것들은 HTML문서와는 달리 서버(톰캣, 아파치 HTTP, Nginx 등등)의 구동을 통해서만 서비스가 가능합니다. HTML문서는 로컬에 파일이 있으면 서버같은 것 없이 볼 수 있다는 점이 차이이지요. 물론, 다른 이용자가 볼 수 있게 하려면 위 언급한 서버가 필요할거구요.
다시 돌아와서 이번엔 어떤 구조로 돌아가는지 알아보면요.
1. 사용자가 서버로 페이지를 요청합니다.(Request, 요청)
2. 서버는 서버사이드 언어로 HTML 페이지를 구성합니다.(JSP, PHP가 작동하는 시점이 여기입니다)
3. 서버는 완성된 페이지를 사용자에게 전달해줍니다.(Response, 응답)
4. 사용자의 웹브라우저(클라이언트, 크롬, 사파리, 인터넷 익스플로러 등)는 HTML 문서를 렌더링합니다.
5. HTML문서가 렌더링이 완료가 되면 기타 리소스 파일(img 태그 등에 있는 이미지 등)에 대한 요청하여 화면에 다시 렌더링합니다.
4, 5 의 차례에서 자바스크립트와 CSS가 각자 조건에 맞추어서 작동합니다.
이런식의 순서가 되는데 조금, 이해가 가시려나 모르겠습니다.