ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [네트워크] HTTP VS HTTPS
    Computer Science/Network 2017. 12. 24. 01:20
    반응형

    [http 와 https 의 차이점]




    웹 브라우저의 주소창을 자세히 보면 http://나 https://로 시작한다. 

    간략하게 설명하면 HTTPS 는 HTTP에서 보안성이 강화되었다고 생각하면 된다.



    HTML이란 무엇인가?


    우리가 보는 웹 페이지의 대부분은 확장자가 html 이다. 기타 php, aspx, jsp 등도 있다.

    이들은 각각 웹 서버의 처리 엔진에 따른 결과물인데, 사실 확장자는 중요한게 아니다.

    확장자가 php, aspx, jsp인 것도 다들 html 이다. 

    웹 브라우저는 확장자를 보고 html 인 줄 아는게 아니라, 헤더에 있는 타입을 보고 아는 것이다. 

    우리가 보기에는 확장자가 php라도, 헤더에는 txt/html 로 타입이 규정되어 있고, 웹 브라우저는 그래서 이것이 html 인 줄 알 수 있다.

    웹 페이지는 메모장으로 소스 보기를 하면 보이듯이 <tag> 태그로 둘러싸인 텍스트 문서이다.



    HTTP란 무엇인가?


    HTTP(HyperText Transfer Protocol)는 WWW 상에서 정보를 주고 받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고 받는데에 쓰인다. TCP와 UDP를 사용하며, 80번 포트를 사용한다. 1996년 버전 1.0, 그리고 1999년 1.1 이 각각 발표되었다.


    HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹 페이지나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다.  이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다.

    HTTP를 통해 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회할 수 있다.


    HTTP 메소드 

    GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH


    <출처: 위키백과>



    HTTP는 Hypertext transfer protocol의 약자로 HTML 같은 문서를 웹 브라우저가 웹 서버에 요청하는 프로토콜이다. 즉 인터넷에서 사용하는 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위한 통신 규약이다. 인터넷에서 하이퍼텍스트를 교환하기 위해 사용되는 통신 규약이며, 포트번호는 80번을 사용하고 있다.


    HTTP 서버는 80번 포트에서 대기하고 있으며, 클라이언트는 TCP 80번 포트를 사용해서 연결을 하게 된다. (서버 - 클라이언트 모델을 사용한다) HTTP에는 사용할 수 있는 메소드가 여러가지 있다. HEAD, GET, POST, DELETE, OPTION 등의 메소드를 가지고 있으며, 클라이언트가 서버에 데이터를 요청할 때는 GET이라는 메소드를 사용하고, 클라이언트에서 서버로 다시 회신할 경우에는 POST 메소드를 사용한다.


    프로토콜이라는 것은 일종의 대화 규칙이다. 

    이게 없다면 웹 서버는 웹 브라우저가 무슨 페이지를 달라고 하는 것인지 모를 것이고, 웹 브라우저도 웹 서버가 무슨 페이지를 보내는 것인지 알 수 없다. HTTP도 그냥 텍스트 교환일 뿐이다. 복잡한 바이너리 데이터가 아니라 그냥 텍스트 메시지를 주고 받는다. 물론 그 텍스트 메시지 안에는 HTML 페이지도 들어 있다. 텍스트이기 때문에 만약 내가 있는 네트워크 안에서 누가 그 신호를 가로채어 본다면 내용이 그대로 보이게 된다. 만약 내가 메일을 읽고 있는데 누가 그 신호를 가로챈다면 메일 내용을 읽을 수 있을 것이다. 그래서 등장한 것이 보안성을 강화한 HTTPS 이다.


    HTTP는 1989년 팀 버너스 리(Tim Berners Lee)에 의하여 처음 설계되어 인터넷을 통한 월드 와이드 웹(World-Wide Web) 기반에서 전 세계적인 정보 공유를 이루는데 큰 역할을 하였다. 

    http:// 와 같은 형식을 사용하고 있으며 앞에 http:// 가 붙어 있으면 HTTP 프로토콜로 처리하라는 의미가 된다. 또한 www로 시작되는 주소가 대부분이다. 지금까지는 HTTP를 사용해왔지만 HTTPS 프로토콜이 등장하면서 HTTPS로 바뀌어 가는 추세이다.



    HTTPS란 무엇인가?




    HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure는 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전이다. HTTPS는 통신의 인증과 암호화를 위해 넷스케이프 커뮤니케이션즈 코퍼레이션이 개발했으며, 전자 상거래에서 널리 쓰인다.


    HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다. 따라서 데이터의 적절한 보호를 보장한다. HTTPS의 기본 TCP/IP 포트는 443이다.

    보호의 수준은 웹 브라우저에서의 구현 정확도와 서버 소프트웨어, 지원하는 암호화 알고리즘에 달려 있다. HTTPS를 사용하는 웹 페이지의 URI는 'http://' 대신 'https://'로 시작한다. 


    <출처: 위키백과>


    HTTPS는 HTTP 프로토콜의 보안성을 강화한 프로토콜이다. HTTPS 는 Hypertext Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure 등으로 불리며, HTTP하고 거의 같지만 모든 통신 내용을 암호화하는 것이 다르다. 사실 s가 secure socket, 즉 안전한 통신망을 뜻한다.


    이렇게 암호화를 하는 방법은 간단하다. 즉 공개키 방식을 사용해서 암호화를 진행한다. 

    공개키를 간단하게 설명하면 2개의 키를 가지고 하나는 암호화, 하나는 복호화를 하는데 사용하는 방식이다. 그렇기에 사용자들은 페이지를 안전하게 보면서 데이터를 주고 받을 수 있다. 이러한 키가 저장되어 있는 곳이 바로 HTTPS 프로토콜이다. HTTP의 경에는 중간에 가로채는 일이 가능하기 때문에 페이지를 조작해서 부당한 이익을 챙길 수 있다. 하지만 HTTPS는 그럴 수 없으며 중간에서 가로챌 수가 없기 때문에 데이터를 주고 받는 것의 위험 요소가 훨씬 적다.




    HTTPS의 원리를 간단히 알아보면 핵심은 공개키 암호화 방식이다.


     

    위 그림은 공개키 암호화 과정을 나타낸다. 암호화 방식은 다음 포스팅 때 자세히 다루도록 하겠다.

    반응형
Designed by Tistory.