주소와 파일은 같은 것이 아니다
브라우저가 어떤 URL을 요청했다고 해서 서버가 반드시 같은 이름의 파일 하나를 찾아 보내는 것은 아니다. 저장된 파일을 제공할 수도 있고 프로그램이 결과를 만들어 응답할 수도 있다.
주소는 자원을 식별하는 방식이고 서버 내부에서 그 요청을 처리하는 구현은 따로 정할 수 있다.
응답에는 상태도 담긴다
웹 서버의 응답에는 본문뿐 아니라 상태 코드와 헤더가 포함될 수 있다. 요청한 문서를 찾지 못했는지, 다른 주소로 이동해야 하는지 같은 정보도 이 방식으로 전달한다.
브라우저는 응답의 본문과 형식 정보를 해석하고 필요한 추가 자원을 요청한다. 서버가 화면의 모든 동작을 직접 그리는 것은 아니다.
응용 프로그램과 함께 동작하기
웹 서버는 응용 프로그램에 요청을 넘기고 그 결과를 전달하는 역할을 맡을 수 있다. 정적인 파일과 동적으로 만들어진 응답을 같은 서비스에서 함께 제공하는 경우도 많다.
따라서 웹 서버와 데이터베이스, 응용 프로그램은 관련되지만 서로 다른 역할의 구성 요소다. 실제 배치는 서비스에 따라 달라진다.
여러 장치로 나누기
하나의 도메인 아래에서도 여러 서버나 중간 캐시가 요청을 처리할 수 있다. 독자가 보는 주소 하나와 실제 장치 한 대가 항상 일대일로 대응하는 것은 아니다.
이런 구성에서는 성능뿐 아니라 응답의 일관성과 장애 시 동작을 함께 고려해야 한다.