TIL. Network(2)

seul_velog·2022년 8월 28일
post-thumbnail

HTTP 와 HTTPS의 차이점

HTTP와 HTTPS의 큰 차이는 SSL인증서이다. SSL인증서는 사용자가 사이트에 제공하는 정보를 암호화(데이터를 암호로 바꾸는 개념)한다.
즉, HTTP는 암호화가 추가되지 않으므로 보안에 취약하지만 HTTPS는 안전하게 데이터를 주고 받을 수 있다는 차이가 있다. 다만 HTTPS는 암호화/복호화 과정이 필요하므로 HTTP보다 속도가 느리고, 인증서를 발급&유지 하기위한 추가비용이 발생할 수 있다.

HTTP

📌 HTTP (Hypertext Transfer Protocol: 하이퍼 텍스트 전송 프로토콜)

  • 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 프로토콜이다.
  • 웹 서핑을 할 때 서버에서 브라우저로 데이터를 전송해주는 용도로 가장 많이 사용된다.
  • 인터넷 초기 모든 웹사이트에서 기본적으로 사용된 프로토콜이다.
  • TTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다.
  • 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 단점이 있다. → 보안에 취약

HTTPS

📌 HTTPS (Hypertext Transfer Protocol Secure: 하이퍼 텍스트 전송 프로토콜 보안)

✍️ HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS계층을 넣은 신뢰할 수 있는 HTTP요청을 말한다.

  • SSL(보안 소켓 계층)을 사용한다.
    → SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버 브라우저가 민감한 정보를 주고받을 때 이것이 도난당하는 것을 막아준다.
  • HTTP에 데이터 암호화가 추가된 프로토콜이다.
  • HTTPS는 HTTP와 다르게 443번 포트를 사용한다.
  • HTTPS를 이용하면 암호화/복호화의 과정이 필요하기 때문에 HTTP보다 속도가 느리다.
  • 검색엔진 최적화(SEO)에 있어서도 유리하다. (안전하다고 생각하는 사이트를 더 자주 방문, 구글이 HTTPS웹 사이트에 가산점을 줌)

✍️ SSL/TLS
: 전송 계층에서 보안을 제공하는 프로토콜이다. 클러이언트와 서버가 통신할 때 SSL/TLS를 통해 제 3자가 메시지를 도청하거나 변조하지 못하도록 한다. SSL/TLS는 보안 세션을 기반으로 데이터를 암호화하며 보안 세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용된다.
SSL(Secure Socket Layer)
TLS(Transport Layer Security Protocol)


📌 웹과 인터넷 정리



DNS round robin 방식

round robin 이란 DNS 서버 구성 방식 중 하나이다.
Domain 에 대한 IP 요청 쿼리 시 round-robin 방식으로 IP 를 반환한다.


DNS

Domain Name System 의 약자로서 IP 네트워크에서 사용하는 시스템이다.
도메인 이름 시스템(DNS)은 사람이 읽을 수 있는 도메인 이름(예: www.naver.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환한다.

  • 도메인 이름과 IP 주소를 매핑해주는 서버.
    예를 들어 www.naver.com에 DNS 쿼리가 오면 [Root DNS][.com DNS][.naver DNS][.www DNS] 과정을 거쳐 완벽한 주소를 찾아 IP 주소를 매핑한다. 이를 통해 IP 주소가 바뀌어도 사용자들에게 똑같은 도메인 주소로 서비스할 수 있다.
    www.naver.com의 IP 주소가 222.111.222.111에서 222.111.222.122로 바뀌었음에도 똑같은 www.naver.com이라는 주소로 서비스가 가능하다.

📌 DNS Query
DNS 서버에서 Domain Name 이용하여 IP 를 받아온다.
이때 Domain Name Server 접속하는 유저에 대해서 Round Robin 방식으로 IP 를 할당한다.


Round Robin

라운드 로빈 DNS는 별도의 소프트웨어 혹은 하드웨어 로드밸런싱 장비를 사용하지 않고, DNS만을 이용해서 도메인 레코드 정보를 조회하는 시점에서 트래픽을 분산하는 기법이다.

  • 현대 컴퓨터가 쓰는 스케줄링인 우선순위 스케줄링의 일종이다. 각 프로세스는 동일한 할당 시간을 주고 그 시간 안에 끝나지 않으면 다시 준비 큐(ready queue)의 뒤로 가는 알고리즘이다.
  • 이 알고리즘은 로드밸런서에서 트래픽 분산 알고리즘으로도 쓰인다.

📌 용어 알기
로드 밸런서: 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭한다.
로드 밸런싱 : 트래픽을 분산시켜주는 컴퓨터 네트워크의 기법
DNS 레코드 : DNS 상에서 도메인에 관한 설정을 하기 위해 사용되는 일련의 문자들을 통칭


라운드 로빈 DNS의 원리

웹 서버로 예를 들자면, 웹 서비스를 담당할 여러 대의 웹 서버는 자신의 공인 IP를 각각 가지고 있다. 웹 사이트에 접속을 원하는 사용자가 해당 도메인 주소를 브라우저에 입력하면, DNS는 도메인의 정보를 조회하는 데, 이때 IP 주소를 여러 대의 서버 IP 리스트 중에서 라운드 로빈 형태로 랜덤하게 하나 혹은 여러개를 선택하여 다시 사용자에게 알려준다.

결과적으로 웹 사이트에 접속하는 다수의 사용자는 실제로는 복수의 웹 서버에 나뉘어 접속하게 되면서 자연스럽게 서버의 부하가 분산되는 방식이다.

▼ 라운드 로빈 DNS를 이용한 로드 밸런싱



웹 통신의 큰 흐름

✍️ 웹이 동작하는 방식의 큰 흐름

  1. 사용자가 URL 주소를 입력
  2. 브라우저는 DNS서버에서 해당 도네임 검색
  3. HTTP프로토콜을 사용, HTTP 요청 메세지 생성
  4. TCP/IP 연결을 통해 HTTP요청이 서버로 전송
  5. 서버는 HTTP프로토콜을 사용, HTTP 응답 메세지 생성
  6. TCP/IP 연결을 통해 요청한 컴퓨터로 전송
  7. 도착한 HTTP 응답 메세지는 웹페이지 데이터로 변환, 웹 브라우저에 의해 출력 → 사용자가 보게 됨

📌 웹의 동작방식 정리




reference)
HTTP
HTTP와 HTTPS
DNS와 DNS Query
로드밸런서
Round Robin

profile
기억보단 기록을 ✨

0개의 댓글