인터넷에 공부해보기 3탄 대작전
HTTP
앞서 우리는 Internet 작동과 데이터 전송 방식을 배웠었다.
하지만 그것은 단지 데이터가 전송 될 떄이고,
실제로 컴퓨터끼리 어떤 방식으로 커뮤니케이션을 하게 될까?
우리는 어떤 사이트를 들어갈 때 주소창에 도메인을 입력하고 들어간다.
그러면 어떻게 우리 화면에 그려지게 될까?
우리가 도메인에 접속하는 순간
아주 짧은 시간안에 컴퓨터는 아주 멀리 떨어져 있는 서버한테 해당 웹사이트를 요청하게 된다.
그리고 그 서버는 HTTP를 통해 우리 컴퓨터에 응답을 해준다.
HTTP는 HYPER TEXT TRANSFER PROTOCAL의 약자로,
컴퓨터끼리 커뮤니케이션을 할 때 사용하는 언어다.
간단하게 이야기 하면,
A가 B에게 무언가를 요청할 때 어떠한 규칙과 방식을 정해두고,
해당 방식으로 대화를 하는 것이다.
HTTP는 크게 METHOD와 URL로 이루어져 있다.
METHOD는 크게 GET이나 POST이며,
URL은 우리가 요청하는 문서의 이름이라고 생각하면 된다.
네이버에 로그인을 할 때, 우리의 로그인 정보가 담긴 문서를 요청한다면
METHOD는 GET / URL은 naver/login 이런식으로 정해진다.
url은 만드는 사람 마음이다.
그러면 우리 요청에 대한 응답으로
어떤 정보나, HTML, CSS와 같은 화면이 오게 된다.
HTTP 방식을 이용해 전송되는 데이터들은 해커가 볼 수 있기에
더 안전한 방식인 HTTPS를 이용한다.
이는 TLS, SSL을 사용하여 훔쳐보거나 무단 변경을 방지하는 것이다.
그래서 우리가 주소창 옆에 https라면 자물쇠 모양이 있는 것을 확인할 수 있다.
Encryption
우리는 데이터를 전송할 때 암호화된 데이터를 많이 사용한다.
우리는 어떻게 해야 암호화를 할 수 있을까?
보통 데이터를 스크램블링하여 뒤죽박죽처럼 만든다.
그리고 받을 때는 다시 원래상태로 돌려서 데이터를 확인하는 것이다.
이것의 시초는 시저 암호다.
시저 암호는 각 알파벳을 특정 숫자로 대체하는 알고리즘이다.
ABC + 3 => DEF.
이렇게
이렇게 되면 어떻게 숫자를 정했는지 받는 사람만 안다면 이것을 키라고 부른다.
받는 사람은 DEF를 받을 것이고, 키가 3이라는 것을 알면
DEF를 ABC로 해독할 수 있다.
이건 너무 간단한 방식이라 해독하기 쉽다.
이 방식을 더 복잡하게 해서 만들면 된다.
요즘은 256비트 키를 사용한다.
256비트 키는 컴퓨터로도 해독하는데 몇 백억년이 걸린다고 한다.
이렇게 받는 사람과 보내는 사람이 동일한 키를 갖고 암호화, 해독하는 것을
대칭 암호화라고 한다.
하지만 여기서 더 넘어서 비대칭 암호화가 있다.
암호화 할 때와 해독할 때의 키가 서로 다른 것이다.
아래 사진처럼
편지를 넣을 때와 읽을 때의 열쇠를 다르게 하는 것.
굳굳
출처
https://roadmap.sh/guides/what-is-internet