전 세계의 웹브라우저, 서버, 웹 애플리케이션은 모두 HTTP(Hypertext Transfer Protocol)를 통해 서로 대화한다. HTTP는 현대 인터넷의 공용어이다.
HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용하기 때문에, 데이터가 지구 반대편에서 오더라도 전송 중 손상되거나 꼬이지 않음을 보장한다.
웹 클라이언트와 서버
웹 콘텐츠는 웹 서버에 존재한다. 웹 서버는 HTTP 프로토콜로 의사소통하기 때문에 보통 HTTP 서버라고 불린다. 웹 서버는 인터넷의 데이터를 저장하고, HTTP 클라이언트가 요청한 데이터를 제공한다.
클라이언트는 서버에게 HTTP 요청을 보내고 서버는 요청된 데이터를 HTTP 응답으로 돌려준다.
예를 들어, 'http://www.oreilly.com/index.html" 페이지를 열어볼 때, 웹브라우저는 HTTP 요청을 www.oreilly.com 서버로 보내고, 서버는 요청을 받은 객체 ('/index.html')를 찾고, 성공했다면 그것의 타입, 길이 등의 정보와 함께 HTTP 응답에 실어서 클라이언트에게 보낸다.
리소스
웹 서버는 웹 리소스를 관리하고 제공한다. 웹 리소스는 웹 콘텐츠의 원천이다. 가장 단순한 웹 리소스는 웹 서버 파일 시스템의 정적 파일이다. 정적 파일은 텍스트 파일, HTML 파일, 마이크로소프트 워드 파일, 어도비 아크로팻 파일, JPEG 이미지 파일, AVI 동영상 파일, 그 외 모든 종류의 파일을 포함한다.
하지만 리소스는 반드시 정적 파일이어야 할 필요는 없다. 카메라에서 라이브 영상을 가져와 보여주거나, 주식 거래, 부동산 데이터베이스 검색 등도 가능하다.
요약하자면, 어떤 종류의 콘텐츠 소스도 리소스가 될 수 있다.
미디어 타입
인터넷은 수천 가지 데이터 타입을 다루기 때문에, HTTP는 웹에서 전송되는 객체 각각에 신중하게 MIME 타입이라는 데이터 포맷 라벨을 붙인다. MIME (Multipurpose Internet MAil Extensions, 다목적 인터넷 메일 확장)은 원래 각기 다른 전자메일 시스템 사이에서 메시지가 오갈 때 겪는 문제점을 해결하기 위해 설계 되었다.
웹 서버는 모든 HTTP 객체 데이터에 MIME 타입을 붙인다. 웹 브라우저는 서버로부터 객체를 돌려받을 때, 다룰 수 있는 객체인지 MIME 타입을 통해 확인한다.
MIME 타입은 사선(/)으로 구분된 주 타입과 부 타입으로 이루어진 문자열 라벨이다. 예를들어
- HTML로 작성된 텍스트 문서는 text/html 라벨이 붙는다.
- plain ASCII 텍스트 문서는 text/plain 라벨이 붙는다.
- JPEG 이미지는 image/jpeg가 붙는다.
- GIF 이미지는 image/gif 가 붙는다.
- 애플 퀵타임 동영상은 video/quicktime이 붙는다.
등이 있다.
URI
웹 서버 리소스는 각자 이름을 갖고 있기 때문에, 클라이언트는 관심 있는 리소스를 지목할 수 있다. 서버 리소스 이름은 통합 자원 식별자(uniform resource identifier), 혹은 URI로 불린다. URI는 인터넷의 우편물 주소 같은 것으로, 정보 리소스를 고유하게 식별하고 위치를 저장할 수 있다.
예를 들어, '죠의 컴퓨터 가게' 의 웹 서버에있는 이미지 리소스에 대한 URI 라면 이런 식이다.
- http://www.joes-hardware.com/specials/saw-blase.gif
위의 그림은 죠의 컴퓨터 가게 서버에 있는 GIF 형식의 톱날 그림 리소스에 대한 URI 가 HTTP 프로토콜에서 어떻게 해석되는지 보여둔다. HTTP는 주어진 URI로 객체를 찾아온다. URI에는 두 가지가 있는데. URL과 URN이라는 것이다.
URL
통합 자원 지시자(uniform resource locator, URL)는 리소스 식별자의 가장 흔한 형태다. URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다. URL은 리소스가 정확히 어디에 있고 어떻게 접근할 수 있는지 분명하게 알려준다.
대부분의 URL은 세 부분으로 이루어진 표준 포맷을 따른다.
- URL의 첫 번째 부분은 스킴(scheme)이라고 불리는데, 리소스에 접근하기 위해 사용되는 프로토콜을 서술한다. 보통 HTTP 프로토콜이다.
- 두 번째 부분은 서버의 인터넷 주소를 제공한다. (예: www.joes-hardware.com)
- 마지막은 웹 서버의 리소스를 가리킨다. (예: /specials/saw-blade.gif)
오늘날 대부분의 URI는 URL이다.
URN
URI의 두 번째 종류는 유니폼 리소스 이름(uniform resource name, URN)이다.
URN은 콘텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다. 위치 독립적인 URN은 리소스를 여기저기로 옮기더라도 문제없이 동작한다. 리소스가 이름을 변하지 않게 유지하는 한, 여러 종류의 네트워크 접속 프로토콜로 접근해도 문제없다.
'네트워크' 카테고리의 다른 글
HTTP 완벽 가이드 - 커넥션 관리(2) (0) | 2024.07.22 |
---|---|
HTTP 완벽 가이드 - 커넥션 관리 (0) | 2024.07.21 |
HTTP 완벽 가이드 - HTTP 메시지 (0) | 2024.07.11 |
HTTP 완벽 가이드 - URL과 리소스 (0) | 2024.07.10 |
HTTP 완벽 가이드 - 웹의 기초(2) (1) | 2023.08.21 |