목차

HTML 프레임

HTML의 기능 중 하나로, 한 화면에 여러 개 이상의 페이지를 함께 표시해 주는 기능. 먼 옛날에, 그러니까 XmlHttpRequest인터넷익스플로러만의 전유물이던 시절에 매우 심각하게 남용되었으나, 현재는 많이 사라진 추세이다.

종류

HTML 프레임은 그 구현 방법에 따라 세 종류로 나눌 수 있다.

이 중 맨 마지막 XFrames는 표준안이 묻혀버려서 거의 사용되지 않으며, 나머지 두 개는 HTML 표준에 계속 남아 있으나 이 중 좀 더 "전통적"이라 할 수 있는 가로·세로 나누기는 HTML5에서 폐기 예고가 된 상태이다(물론 하위 호환성때문에 한참 남아 있을 것 같지만).

가로·세로 나누기에서 프레임셋 안에 들어 있는 각 프레임은 서로 별도의 페이지를 참조할 수 있으며, 기본적으로는 다른 프레임에 영향을 주지 않고 다른 페이지를 불러 올 수 있다1). 이 기능은 현재에도 유효해서, 2ch 같이 트래픽이 엄청나게 크고, 따라서 노프레임으로 전환할 경우 트래픽이 급격히 늘어날 가능성이 큰 일부 웹사이트에서 현재까지 잘 쓰이고 있다.

iframe의 경우 프레임을 포함한 페이지와 프레임 안에서 열린 페이지는 동등한 관계가 아니며, 따라서 가로·세로로 나눌 때 얻을 수 있는 트래픽 감소는 기대할 수 없다. 다만 두 페이지가 서로 다른 도메인에 있으면서, 동일도메인정책 때문에 XmlHttpRequest를 쓸 수 없는 상황일 경우 유용할 수 있다. 여기에는 웹위젯 같은 것들이 포함된다.

프레임의 남용

안타깝게도 프레임의 원래 사용 목적을 넘어선, 그러니까 보통 HTML로 깔끔하게 만들 수 있는 것을 프레임을 써서 엉망으로 만들어 놓는 남용 사례가 한동안 있어 왔는데, 여기에는 다음이 포함된다:

설마 이런 사이트가 아직도 남아 있는가? 생각한다면 오산. 아직도 꽤 남아 있다(예를 들어서 코레일 웹사이트). 제발 이러지 좀 말자.

1) 그러나 이 기능이 한참 남용되던 시절에는 프레임 기능을 주소창 바꾸지 않는 기능으로 오인한 경우가 상당해서, 페이지 전환이 일어날 때마다 새로운 프레임셋 문서를 열어 버리는 미친 페이지들도 꽤 있었다.