HTTP 프로토콜

 HTTP(Hypertext Transfer Protocol)는 인터넷에서 데이터를 주고받는 데 사용되는 프로토콜 중 하나이다. HTTP는 웹 브라우저와 웹 서버 간의 통신을 위해 개발되었으며, HTML, CSS, Javascript 등의 문서를 전송하기 위한 표준 프로토콜로 사용된다.

 HTTP는 클라이언트-서버 모델을 따르며, 클라이언트(보통은 웹 브라우저)가 서버에 요청(Request)을 보내고, 서버는 클라이언트에게 응답(Response)을 보낸다. 이때, 요청과 응답은 HTTP 메시지라는 형식으로 전송된다.

클라이언트 - 서버 모델



 HTTP는 기본적으로 평문(Plain text)으로 데이터를 전송하기 때문에  데이터의 기밀성과 보안에 취약점이 존재한다. 따라서, 이 문제점을 보완하기 위해서 HTTP보다 보안성이 높은 HTTPS가 등장했다.

 

 

HTTPS 프로토콜

 HTTPS(Hypertext Transfer Protocol Secure)는 HTTP 프로토콜의 보안 강화 버전입니다. HTTPS는 HTTP와 마찬가지로 인터넷 상에서 데이터를 주고받는 데 사용되며, SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여 데이터를 암호화하고 보호해준다.

 HTTPS는 HTTP와 달리, 클라이언트와 서버 간에 암호화된 통신 채널을 사용합니다. 이 암호화된 통신 채널을 통해 데이터가 전송되기 때문에, 중간자 공격(네트워크 통신을 조작하는 보안 공격)과 같은 보안 위협으로부터 보호받을 수 있다.

 HTTPS의 동작 방식은 이렇다.
.

  1. 클라이언트는 서버에 접속하고, SSL/TLS 암호화 방식을 사용하여 인증 요청을 보낸다.
  2. 서버는 인증서를 클라이언트에게 보내고, 클라이언트는 이 인증서가 신뢰할 수 있는지 확인한다.
  3. 클라이언트와 서버 간에 공유된 비밀키를 사용하여 데이터를 암호화하고 전송한다.

 

참고 : https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

 

HTTP 개요 - HTTP | MDN

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버

developer.mozilla.org

https://www.ibm.com/docs/ko/aix/7.1?topic=systems-client-server 

 

클라이언트 및 서버

서버는 데이터를 포함하거나 네트워크의 다른 컴퓨터에서 액세스하는 기능을 제공하는 컴퓨터입니다. 클라이언트는 서버로부터 서비스나 데이터를 요청하는 컴퓨터입니다. 일반 서버 유형은

www.ibm.com

 

IP 주소?

 IP 주소는 인터넷 프로토콜(Internet Protocol) 주소의 약자로, 컴퓨터 네트워크 상에서 통신을 위해 부여되는 주소다. IP 주소는 각각의 컴퓨터나 장치를 고유하게 식별하며, 데이터를 정확하게 전달하기 위해 필요하다.

 

IP 주소의 유형

IP 주소의 유형에는 Public IP(공인 IP)와 Private IP(사설 IP)가 있다.
 간단하게 설명하면, Public IP는 인터넷에서 공개적으로 액세스 가능한 IP 주소, Private IP는 내부 네트워크에서 사용되는 IP 주소다.

 Public IP는 인터넷 서비스 제공업체(ISP)로부터 제공되며, 인터넷을 통해 전 세계적으로 접근할 수 있습니다. 반면, Private IP는 로컬 네트워크에서만 사용되며, 일반적으로 라우터에 의해 할당됩니다. 따라서 인터넷에서는 Private IP에 직접 접근할 수 없다.

 

Public IP와 Private IP의 차이점

  • Public IP는 인터넷 상에서 공개되어 있는 IP 주소이며, 모든 인터넷 사용자가 접근 가능하다. 반면 Private IP는 로컬 네트워크에서만 사용되며, 인터넷에선 접근할 수 없다.
  • Public IP를 사용하면 인터넷 상에서 공개적으로 접근할 수 있기 때문에, 원격 접속이나 서버 호스팅 등에 유용하다. 반면에 Private IP는 로컬 네트워크에서만 사용되기 때문에, 내부적인 통신에 쓰기 좋다.
  • Public IP는 한 사용자에게 유일하게 할당되는 고유한 IP 주소이기 때문에, 전 세계에서 공유되지 않는다. 따라서 보안에 취약한 면이 있을 수 있다. 하지만 Private IP는 로컬 네트워크에서만 사용되기 때문에, 외부 공격으로부터 상대적으로 안전하다.
  • Public IP는 인터넷 서비스 제공업체(ISP)에서 할당하며, 사용하는데 요금을 지불해야 한다. 하지만 Private IP는 로컬 네트워크에서 라우터나 스위치 등을 통해 할당되며, 추가 비용이 들지는 않는다.

공인 IP와 사설 IP의 차이 - NordVPN

 

공인 IP 주소는 인터넷 통신 목적으로 사용되고, 사설 IP 주소는 로컬 네트워크 통신 목적으로 사용된다는 점에서 차이가 있기에 어느 IP 주소가 더 좋다고 이야기하기는 힘들다.

그러나 공인 IP 주소는 인터넷에서 식별이 가능하기에 공인 IP 주소가 노출되어 개인 데이터가 유출되지 않도록 주의할 필요가 있다.

클라우드 컴퓨팅

클라우드 컴퓨팅은 인터넷을 통해 서버, 스토리지, 데이터베이스, 소프트웨어 등 다양한 컴퓨팅 리소스를 제공하는 기술이다.

기존의 온프레미스 방식(직접 물리적인 서버를 구축하는 방식)과는 달리, 클라우드 컴퓨팅은 인터넷에 연결된 기기에서 언제 어디서든 접근할 수 있는 편리한 환경을 제공할 수 있다.

 

클라우드 컴퓨팅은 기업의 IT 비용을 절감하고, 인프라 구성과 관리에 대한 부담을 줄여줌으로써 비즈니스를 유연하게 만들어 줄 수 있다.

또한, 클라우드 컴퓨팅은 대규모의 데이터를 다루는 데 매우 유용하며, 데이터 분석과 인공지능 등의 기술 발전을 촉진하는 데도 큰 역할을 하고 있다.

 

분류

클라우드 컴퓨팅은 다양한 모델로 제공됩니다. 대표적인 세 가지 모델은 IaaS, PaaS, SaaS다.

각 모델은 사용자가 관리하는 부분과 제공자가 관리하는 부분이 다르며, 그래서 사용자는 필요한 서비스를 선택할 수 있다.

 

IaaS (Infrastructure as a Service)

IaaS는 가장 기본적인 클라우드 컴퓨팅 모델이다. 사용자는 클라우드 서비스 제공자가 제공하는 인프라를 사용해 가상 머신, 스토리지, 네트워크 등을 생성하고 관리할 수 있다.

 

일례로, 기업이 IaaS 모델을 사용하여 자사 서버를 클라우드 상에서 운영할 경우에, 서버 운영 환경을 스스로 구축하고 관리할 필요 없이 클라우드 서비스 제공자가 제공하는 인프라 위에 가상 머신을 생성하고 필요한 소프트웨어와 애플리케이션을 설치하여 사용할 수 있다.

 

대표적인 서비스로는 아마존의 aws, Google의 Compute Engine(GCE), 등이 있다.

 

PaaS (Platform as a Service)

 

PaaS는 IaaS에서 제공되는 인프라뿐 아니라 플랫폼까지 제공하는 모델다. 사용자는 인프라와 운영 체제, 미들웨어, 개발도구 등을 설치할 필요 없이 PaaS 제공자가 제공하는 플랫폼 위에서 애플리케이션을 개발하고 배포할 수 있다.

 

예를 들어, 기업이 PaaS 모델을 사용하여 웹 애플리케이션을 개발하고자 할 때, 클라우드 서비스 제공자가 제공하는 플랫폼 위에서 필요한 소프트웨어와 개발 도구를 사용하여 애플리케이션을 개발하고, 배포 및 운영까지 가능하다.

 

대표적인 서비스로는 Heroku가 있다.

 

SaaS (Software as a Service)

SaaS는 가장 최상위 계층에 해당하는 클라우드 컴퓨팅 모델이다. 사용자는 클라우드 서비스 제공자가 제공하는 소프트웨어 애플리케이션을 사용한다.

 

예를 들어, 기업이 SaaS 모델을 사용하여 이메일 클라이언트나 공유 문서 플랫폼을 이용하고자 할 때, 클라우드 서비스 제공자가 제공하는 애플리케이션을 사용하여 이메일이나 문서를 관리할 수 있다.

 

대표적인 서비스로 폴라리스 웹, Google Docs, 등이 있다.

 

IaaS vs. PaaS vs. SaaS

각 모델은 제공하는 서비스의 범위와 사용자가 관리하는 부분이 다르다.

모델 서비스 범위 고객이 관리하는 부분
IaaS 인프라 가상 머신, 스토리지, 네트워크 등
PaaS 플랫폼 및 개발 도구 애플리케이션 개발, 배포, 운영 등
SaaS 소프트웨어 애플리케이션 애플리케이션 사용

각 모델은 사용자의 요구사항에 따라 선택할 수 있다.

예를 들어, 인프라를 직접 운영하고자 하는 기업은 IaaS 모델을 선택할 수 있고, 애플리케이션을 개발하고자 하는 기업은 PaaS 모델을 선택할 수 있다. 그리고 소프트웨어 애플리케이션을 사용하고자 하는 기업은 SaaS 모델을 선택할 수 있다.

현재 서비스를 제공하는데 필요한 서버에 사용하는 운영체제는 Linux의 점유율이 압도적이다.

 

미국의 비즈니스 기술 뉴스 웹사이트인 ZDNet에 따르면 세계 상위 백만개의 서버 중에서 약 96.3%가 리눅스 운영체제를 사용하고 있다.

https://www.zdnet.com/home-and-office/networking/can-the-internet-exist-without-linux/

 

​Can the Internet exist without Linux?

Yes, but it wouldn't be the Internet you know.

www.zdnet.com

 

여기에는 여타 다른 운영체제와는 차별화되는 장점이 있다.

  • 오픈 소스이기 때문에 파생되는 압도적인 경제성, 뛰어난 보안성과 활성화된 커뮤니티 지원

 오픈 소스 소프트웨어는 일부 예외를 제외하고 대부분 비용 없이 제품을 사용할 수 있고, 소스 코드가 공개되어 있다.

일반적으로 오픈 소스라면 보안에 취약할 거라고 생각할 수도 있다. 하지만 리눅스처럼 어마어마한 사용자들이 있는 오픈소스의 경우에는 거대한 사용자 규모에 걸맞은 활발한 커뮤니티 활동이 오히려 모든 것이 투명하게 공개되어 있는 소스 코드의 취약점들을 빠르게 파악하고 대처할 수 있다는 장점이 있다. 

 이 커뮤니티는 리눅스의 높은 보안성에 기여할 뿐만 아니라, 리눅스를 사용하고 있는 사람들이 어떤 문제에 막혀 작

작업하는데 곤란한 상황을 구원해줄 동아줄이 되어준다.

  • 편한 유지보수, 뛰어난 안정성

 현재 서비스 제공에 사용되는 서버 인프라는 각기 다른 역할을 담당하는 여러대의 서버를 동시에 운영하는 경우가

많은데, 여기에는 오랜 시간동안 안정적으로 서버가 동작하는 것이 매우매우 중요하다. 그런 면에서 최초 부팅 수           

시스템이 계속 켜져 있는 시간인 업타임(uptime)이 다른 운영체제보다 훨씬 우월하다.

 예를 들어 윈도우의 경우에는 보안패치를 적용하고 시스템의 재부팅이 필요한 경우가 많은데, 리눅스 애초에 설계 단계에서부터 시스템 충돌이나 불안정성 문제가 발생하지 않도록 되어있기 때문에 시스템을 재부팅해야하는 경우가 매우 드물다.

 그래서 1년 365일 24시간 내내 최대한 서비스를 많은 시간에 제공해야하는 서비스. 즉, 높은 가용성을 요구하는 서비스의 경우에 리눅스가 적합하다.

  • 어떤 하드웨어 환경에서도 작동할 수 있는 높은 이식성

 인텔의 x86 아키텍처같은 널리 쓰이는 아키텍처 외에도 라즈베리파이, 슈퍼 컴퓨터와 같은 환경에서도 문제없이 동작한다.

 이런 높은 이식성과 오픈 소스로서 가지는 자유로운 커스터마이징이 시너지 효과를 일으켜 결국 상위 500대 슈퍼컴퓨터운영체제 점유율 100%를 차지해버렸다. 

 

 

      https://www.top500.org/statistics/list/ 

 

List Statistics | TOP500

TOP500 Release November 2022 June 2022 November 2021 June 2021 November 2020 June 2020 November 2019 June 2019 November 2018 June 2018 November 2017 June 2017 November 2016 June 2016 November 2015 June 2015 November 2014 June 2014 November 2013 June 2013 N

www.top500.org

 

물론 다른 이유도 있을 수 있지만 이들 이유만으로도 서버시장에서 다른 운영체제보다 리눅스가 우월한 지위에 있다는 것에 대한 설명은 충분할 것이다.

+ Recent posts