본문 바로가기

기본공부/웹서버&웹프로그래밍

웹프로그래밍 - 웹과 웹 프로그래밍 (2)

웹프로그래밍 - 웹과 웹 프로그래밍 (2)

HTML과 HTTP

웹 페이지를 만들 때 사용하는 것이 바로 HTML(HyperText Markup Language)이며, HTML 표준에 정의된 <html>, <head>,<body> 등의 구성 요소를 이용해서 웹 페이지를 작성한다. HTML을 이용해서 작성했다고 해서 HTML 문서라고 부른다.

 

웹 서버는 URL에 해당하는 HTML문서를 전송하는데, HTML 문서를 받은 웹 브라우저는 정해진 규칙에 따라 HTML 문서를 분석해서 알맞은 화면을 생성한다. HTML 표준에 따라 HTML 문서로부터 알맞은 화면을 생성하는 과정을 렌더링(rendering)이라고도 표현한다.

 

HTML 문서(웹 페이지)는 HTTP 방식을 이용해서 전송한다. HTTP는 HyperText Transfer Protocol의 약자로 웹 브라우저와 웹 서버가 HTML을 비롯해 이미지, 동영상, XML 문서 등 다양한 데이터를 주고 받을 때 사용하는 일종의 규칙이다.

 

HTTP는 크게 아래와 같은 두 가지 관점에서 규칙을 정의하고 있다.

 

  • 요청 규칙 : 웹 브라우저가 웹 서버에 HTML과 같은 것을 요청할 때 사용할 데이터 구성 규칙
  • 응답 규칙 : 웹 서버가 웹 브라우저에 HTML과 같은 것을 전송할 때 사용할 데이터 구성 규칙

요청 데이터는 웹 브라우저가 웹 서버로부터 무엇을 받고 싶은지 기술한다. 이 요청 데이터를 받은 웹 서버는 요청 데이터에 기술한 정보를 이용해서 웹 브라우저가 요청한 것을 응답 데이터에 담아 보낸다.

 

정적 자원과 동적 자원

웹 서버는 기본적으로 웹 브라우저가 요청한 경로를 분석한 뒤, 경로에 해당하는 파일을 읽어와 응답 데이터로 전송한다.

 

같은 URL을 웹 브라우저에 한 번 더 입력하면 동일한 결과가 화면에 표시된다. 파일이 바뀌기 전까지 웹 서버는 항상 같은 내용을 웹 브라우저에 전송하므로 늘 같은 응답 데이터를 받는 웹 브라우저는 동일한 화면을 출력한다. 이렇게 고정된 결과가 출력된다고 해서 이들 URL에 해당하는 자원을 정적(static) 페이지 또는 정적 자원이라고 표현한다.  보통 이미지 파일이나 HTML파일과 같이 자주 바뀌지 않는 것들을 정적 자원으로 제공한다.

 

정적 자원과 달리 파일(코드)을 바꾸지 않아도 조건에 따라 다른 응답 데이터를 전송하는 경우도 있다. 예를들어 검색창에서 검색하는 값에 따라 쿼리 문자열이 달라져 검색 결과가 달라진다. 이렇게 시간이나 특정 조건에 따라 응답 데이터가 달라지는 자원을 동적(dynamic)페이지 또는 동적 자원이라고 부른다. JSP, PHP, ASP.net등 많은 웹 관련 기술들이 바로 동적 페이지를 만드는데 사용되는 프로그래밍 기술이다.