[T.I.L] 221124 - HTTP, HTTPS

권병석·2022년 11월 25일
1

T.I.L (스파르타)

목록 보기
8/22
post-thumbnail

HTTP에 대해서 알아보기 전에..!

🏠 IP 주소

인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰 등)을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소
즉, 인터넷에 연결된 모든 컴퓨터는 IP(주소)를 갖는다.
현재 전세계적으로 보편화되어 사용되는 IP 버전은 IPv4
하지만, 확장성과 용량 면에서 한계를 보이는 IPv4를 대체할 버전은 IPv6

📝 도메인 네임 시스템(DNS, Domain Name System)

= IP 주소를 사람들이 이해하기 쉽게 문자료 표현한 것
도메인은 웹페이지 URL에 포함된다.

⚓️ 포트

운영 체제 통신에서의 종단점
IP Address를 통해 목적지 호스트까지 도달한 후에는 어떤 프로세스(Process)에서 데이터를 받을 것인지 를 알아야 하는데 이 때 쓰이는 것이 포트번호(Port Number)다.

웹 부라우저에 www.naver.com 을 치면 어떤일이 일어나는가?

  1. 웹 브라우저에 www.naver.com 입력.
  2. 사용자가 입력한 URL 주소 중 도메인 네임 부분을 DNS 서버에 검색하고, DNS서버에서 해당 도메인 네임에 해당하는 IP주소를 찾아온다.
  3. HTTP 프로토콜을 사용하여 페이지 URL정보와 찾아온 IP주소를 포함하는 HTTP 요청 메세지를 생성하고, 생성된 HTTP 요청 메세지는 TCP 프로토콜을 사용하여 인터넷 망을 통해 해당 IP주소의 컴퓨터로 전송된다.
  4. HTTP 요청 메세지를 받은 컴퓨터(서버)는 웹 페이지 URL 정보 중 PATH와 HTTP Method에 맞는 액션을 취한다. (여기서는 naver 페이지를 띄우기 위해 필요한 html 등의 리소스를 찾을 것이다.)
  5. 생성된 응답 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메세지로 만들어지고 TCP 프로토콜을 사용하여 인터넷 망을 통해 요청했던 컴퓨터(클라이언트)로 전송된다.
  6. 도착한 HTTP 응답 메세지는 웹 브라우저에 의해 브라우저 렌더링 과정을 거쳐 화면에 출력되어 사용자가 볼 수 있게 된다.

HTTP(HyperText Transfer Protocol)란?

클라이언트와 서버 간의 자원을 교환하기 위한 TCP/IP 기반 통신 프로토콜(규약, 약속)
여기서 TCP/IP는 간단하게 말하자면
TCP는 '패킷을 안전하게 전달해주는 전송 프로토콜' 인데
IP + TCP = 인터넷 프로토콜 + 전송 제어 프로토콜 이다.

단방향성 이라는 것과 비연결성이라는 특징이 있다.
서버가 먼저 응답을 보낼 수 없고 클라이언트가 요청을 보내야만 응답할 수 있고
클라이언트의 요청으로 서버와 연결된 후, 요청에 대한 응답의 데이터를 전송하면 연결을 할 수 없다.
따라서, 실시간 통신을 할 수 없다.

HTTP는 평문 통신이기 때문에 도청이 가능하다.
통신 상대가 검증된 상대인지 확인하지 않기 때문에 위장이 가능하고, 완전성을 증명할 수 없기 때문에 변조가 가능하다.

그래서 HTTP는 보안에 취약하고, 이러한 문제점을 해결하기 위해 HTTPS가 등장한다.

HTTPS란?

HTTP(HyperText Transfer Protocol)의 보안(Secured)버전
SSL/TLS 프로토콜을 사용해 HTTP를 암호화하여 주고 받을 때 쓰는 통신 프로토콜

만약 내가 https로 홈페이지를 만들라면 인증기관에서 인증기관 인증서를 발급 받아야 한다.
무료가 있고 유료가 있는데... 자세한건 나도 잘 모르겠다.

사실 http 까지는 어느정도 이해했지만
https는.. 뭐 인증기관에 정보랑 키 보내고 받고
대칭키 공개키 가지고 사용자랑 주고받으면서
서로 데이터를 안전하게 통신한다...? 라는 것만 대충 알겠다...

profile
Back-End 개발자를 꿈꾸는 디제이였던 백수의 TIL 일기장 입니다.

1개의 댓글

comment-user-thumbnail
2022년 11월 29일
답글 달기