삐리삐리뽀! 통신을 하자! HTTP 통신

양진영·2022년 1월 13일
0

현대 웹서비스

현대 웹서비스는 최소 3개의 각기 다른 역할은 하는 컴퓨터로 이루어져 있다고 한다. 사용자가 사용 하기 편하게 사용자 편의를 위한 front-end 또는 client 라고 불려지는 사용자에게 보여지는 역할은 하는 컴퓨터 한대, 사용자가(client)가 보내는 데이터를 저장하는 저장소 역할은 하는 database(DB) 서버 컴퓨터가 한대, 그리고 사용자와 와 DB 사이에 데이터를 가공하고 처리하는 역할은 하는 backend 컴퓨터가 존재한다. 그럼 왜 HTTP에 대해 얘기한다고 해놓고 현대 웹서비스에 대해서 이야기를 했냐고 묻는다면, 각 컴퓨터가 어떤 역할을 하는지 알고 진행 한다면 HTTP에 대해 이해하는데 도움이 될것이라고 생각했기 때문이다.


HTTP

HyperText Transper Protocol의 줄인 말로 쓰여진 그대로 해석하면 하이퍼텍스트 라는 데이터를 주고 받을때 사용되는 protocol이다. 근데 정의 그대로 해석한다면 좀 이해하기 어려울수 있다, 그래서 내가 이해한 내용을 토대로 설명해 보려한다.

만약 내가 네이버에서 몸짱이 되는법을 검색을 했다면 여러 블로그나, 카페글 등 다양한 자료가 보여질 것이다. 내가 몸짱이 되는법을 검색했을때 부터 여러가지 자료를 보기까지의 과정을 조금 세분화 해서 설명해 보겠다. 우선 첫번째로 일어나는 일은 내가 서버에게 '야 서버야 나 몸짱이 되는법 이라는 내용이랑 맞는 데이터를 좀 줄래?' 라는 요청이 이루어진다. 그러면 이 내용이 담긴 주머니(패킷 이라는 명칭이 있지만 지금은 쉽게 말하기 위해 주머니 라는 예시로 대체 하겠다.)를 백엔드를 거쳐 서버에게 전달한다.

이때 이 주머니를 서버까지 전달하는 약속된 길이 있다. 우리는 이 약속된 길을 거쳐가야 한다. 이때 이 약속된 길이 HTTP이다. 서버에게 주머니가 전달되어 다시 서버가 나에게 주머니를 전달할때 이것을 응답이라고 하고, 응답을 다시 나에게 전달할때 약속된 길을 거쳐가는데 이길이 또한 HTTP이다.

다시 간단하게 정리해보자면, HTTP는 인터넷을 통해 서로 다른 컴퓨터가 통신하여 요청고 응답을 주고 받을때 지켜야 하는 규약(길)이라고 보면 될것이다.


HTTPS

HTTP는 커다란 보안 취약점을 갖고 있었다. 대표적으로는 스니핑(sniffing)이 있다. sniffing을 조금 쉽게 설명해 보자면 HTTP를 통해 주고 받는 주머니에는 보호 장비가 있지 않다. 그래서 나쁜 마음을 먹은 헤커가 네트워크 도구(대표적으로 wireshark)를 이용하여 HTTP를 통해 요청내용이든 주머니나 요청내용에 대한 응답을 담은 주머니가 오고 갈때 중간에서 갈취 또는 도청할수 있다. 이러한 보안 취약점을 방어하고자 HTTP길을 감싸는 울타리를 세우는 작업을 하여 안전하게 만들었다. 이러한 보호조취를 HTTP에 Secure를 붙힌 HTTPS라고 할수 있겠다.

오늘의 HTTP에 관련 글은 여기서 마무리 하려한다. 기술적으로 깊게 따지고 들면 정말 많은 내용을 담을수 있는 주제 이지만 나는 개발자가 꿈이지 네트워크 엔지니어는 아니기 때문에 여기까지만 쓰고 정리하겠다. 읽어 주신 모든 분들께 감사하고 좋은 하루 보내길 바란다!

profile
왜? 라는 질문을 중요시하는 서버 개발자입니다

0개의 댓글