adsense

WWW(World Wide Web)와 HTTP, 그리고 HTTPS에 대하여

월드 와이드 웹(WWW - World Wide Web)의 특징

분산 클라이언트 서버 서비스
브라우저를 사용하는 클라이언트가 서버를 사용하여 서비스 받는다.

클라이언트(브라우저)는 웹 문서를 해석하고 화면에 나타낸다.
웹 서버는 웹페이지에 저장한다.

HTTP 프로토콜을 기반으로 HTML로 작성된 하이퍼텍스트 페이지를 웹 브라우저를 통해 읽을 수 있도록 구성한다.

HTTP 자체 기능을 추가하고, 정적인 웹페이지에서 JavaScript를 이용하여 동적인 웹페이지(예. 날짜와 시간 변경 등)를 만드는 등으로 발전하고 있다.


Hypertext
한 문서의 내용 중에서 다른 문서나 다른 자료를 참조하는 부분을 통해 원하는 다른 문서나 자료를 제공 받음
HTML(HyperText Markup Language)
웹 페이지에 포함된 정보와 그 정보를 디스플레이 하는 방법을 기술하는 표준 언어



HTTP(Hypertext Transfer Protocol)의 특징

WWW에서 데이터를 엑세스하는데 주로 사용되는 프로토콜이다.

서버/클라이언트 모델에서 메시지를 어떻게 교환할 지 정해놓은 규칙

파일을 전송하기 위해 TCP 연결 사용

서버에 연결요청하여 응답 받으면 연결을 닫음(connectless)

HTTP 자체는 상태가 존재하지 않는(stateless) 프로토콜



Connectless & Stateless

서버에 연결, 요청하여 응답을 받으면 연결을 닫는다(Connectless)
HTTP 자체는 상태가 존재하지 않는(Stateless) 프로토콜이다.

장점
불특정 다수를 대상으로 하는 서비스에 적합하다.
웹 서비스를 사용하는 사용자의 요청을 더 많이 처리할 수 있다.

단점
특정 클라이언트가 동일한 서버에 여러 개의 파일을 받기 위해서는 반복적으로 연결을 열고 닫아야 하므로 큰 오버헤드가 발생한다.
(이를 해결하기 위해서 Keep Alive 기능이 HTTP 1.1 부터 지원된다.(하나의 연결당 유지기간, 최대 허용 연결 설정))

클라이언트의 이전 상태 정보를 알 수 없게 되면 웹서비스에 문제점이 존재하게 된다(예. 로그인 유지)
(이를 해결하기 위하여 쿠키(cookie)를 이용하여 문제를 해결한다.(연결상태를 유지하기 위한 방법))


쿠키(Cookie)

쿠키 생성 및 저장
  1. 서버가 클라이언트로부터 요청 받을 때 클라이언트에 대한 정보를 파일문자열로 저장한다.
  2. 서버는 클라이언트에게 보내는 응답에 쿠키를 포함한다.
  3. 라이언트가 응답 받으면 브라우저는 쿠키를 도메인 서버 이름으로 정렬되는 쿠키 디렉토리에 저장한다.


쿠키 사용
  1. 클라이언트가 서버에게 요청 보낼 때 브라우저는 쿠키 디렉토리 검색하여 서버가 보낸 쿠키 찾아 요청에 포함시킴.
  2. 서버가 요청 받을 때쿠키를 통해 이것이 기존 클라이언트임을 확인.


TCP_IP Protocol Suite 4th ed. - B. Forouzan (McGraw-Hill, 2010)




HTTPS

데이터 보안을 위해 개발한 통신 레이어로, SSL 레이어 위에 HTTP를 통과시키는 방식이다.
간단히 보기 위해 아래 그림을 참조하기 바람.






그림과 같이 평문의 HTTP 문서가 SSL 레이어를 통과하면서 암호화되어 목적지에 도착한다. 목적지에서 SSL 레이어를 통과하면서 복호화되어 웹브라우저에 전달된다.

HTTPS는 인증서를 이용하여 접속 사이트가 신뢰할 수 있는 사이트인지를 평가한다.

단점
일반적으로 HTTP에 비해 느리다.
민감한 정보를 다루는 페이지를 HTTP로 전송하고 기타 페이지를 HTTP로 전송하기도 한다고 하지만 보안상 요즘은 전체를 다 HTTPS 사용하는듯하다.