웹 페이지는 웹 브라우저가 표시하는 개별 웹 문서다. (MDN, 웹 탐색의 기초) 문맥이 분명하면 페이지로 줄여 쓴다. 여러 페이지를 아우르는 웹사이트, 그 대표 첫 화면인 홈페이지와 구분한다. 새로운 질서 위키의 이 페이지 또한 웹 페이지다. 웹 페이지는 저장된 텍스트 파일에서 제공되기도 하고, 요청에 따라 서버에서 만들어지기도 한다. (MDN, 서버 측 웹 프로그래밍 소개)
HTML은 제목, 문단, 하이퍼링크 같은 요소로 문서를 구성한다. 소스를 손으로 적을 수도 있고 프로그램으로 만들 수도 있다. CSS는 그 문서의 배치와 표현을, 자바스크립트는 내용과 동작의 변화를 다룬다. 문장 하나가 화면에 나타나기까지 파일과 서버, 웹 브라우저가 어떤 일을 나누어 하는지는 같은 글을 제공하는 방법에 따라 달라진다.
웹 페이지는 네트워크, 서버, 라이브러리, 웹 브라우저, 디바이스 등 여러 기술 위에서 읽힌다. 데이터베이스를 거쳐 만든 페이지도 있고, 텍스트 파일 하나를 그대로 보내는 페이지도 있다. 기술은 우리에게 힘을 실어주기도, 제약을 주기도 한다. 우리의 글쓰기는 이런 기반과 분리할 수 없으며, 매체는 최종 제품과 뗄 수 없는 관계에 있다.
사람들은 대개 디자인이 겉모습이라 생각한다. (…) 하지만 우리가 생각하는 디자인은 그런 게 아니다. 디자인은 단순히 모양과 느낌이 아니다. 디자인은 작동 방식이다. —스티브 잡스
웹 기술로 화면을 만드는 애플리케이션도 있다. 일렉트론(Electron)은 HTML, CSS, 자바스크립트로 데스크톱 앱을 만들며 크로미엄과 Node.js를 함께 묶는다. (일렉트론 문서) 이 방식은 웹 기술을 앱 안에 쓰는 사례이지 모든 앱 화면이 웹 페이지라는 뜻은 아니다. 리액트 네이티브(React Native)는 자바스크립트를 쓰더라도 안드로이드와 iOS의 네이티브 뷰를 생성한다. (리액트 네이티브, 기본 구성 요소 안내) 따라서 사용하는 언어만으로 웹 페이지인지 판단할 수는 없다.
웹 브라우저 밖의 자바스크립트
자바스크립트는 웹 브라우저 밖에서도 실행된다. Node.js에서는 같은 언어로 서버를 만들고 요청에 응답할 수 있다. 웹 브라우저에서 문서를 바꾸는 코드와 서버에서 응답을 만드는 코드는 언어가 같아도 실행 환경과 사용할 수 있는 기능이 다르다. (Node.js 소개)
내용과 형식을 함께 만들기
새로운 질서에서는 HTML, CSS, 자바스크립트를 배우며 내용과 형식이 서로를 밀고 당기는 모습을 살핀다. 예컨대 같은 문장을 제목으로 옮기면 뒤에 오는 글을 읽는 방식이 달라진다. 하이퍼링크로 만들면 그 문장은 다른 곳으로 이동하는 길도 된다. 내용을 모두 정한 뒤 형식을 입히는 순서만으로는 이런 변화를 설명하기 어렵다.