Developing Myself Everyday
article thumbnail
HTTP와 TCP/IP 그리고 소켓과 웹소켓

사진: Unsplash의JJ Ying 요즘 지원 공고를 보다보면 웹소켓 통신을 사용해본 경험을 요하는 공고가 꽤 있었습니다. 사실 이전부터 웹소켓 통신을 해봐야지 라고 마음만 먹고 시작하지 못했어서, 직접 경험해보기 전에 웹소켓이 뭔지, 전체적으로 정리해 보려고 합니다. HTTP와 TCP/IP HTTP와 TCP/IP는 항상 같이 이야기가 나오지만, 이 둘이 자주 혼동되는거 같습니다. 현대의 인터넷 통신에서는 아래와 같은 TCP/IP 4계층 구조를 통해 통신을 하고 있습니다. Application Layer(애플리케이션 계층): 응용 프로그램에서 사용하는 프로토콜을 정의하는 계층이다. 이 계층에서는 사용자와 직접적인 상호작용이 이루어진다. HTTP, FTP, SMTP 등의 프로토콜이 이 계층에서 동작한다...

article thumbnail
TCP / IP 계층에서 데이터 전달에 따른 프로토콜 동작

TCP / IP 란? TCP / IP는 인터넷에서 데이터 통신을 위해 사용되는 프로토콜이며, 인터넷의 핵심 프로토콜로서 전 세계적으로 사용되고 있다. TCP/IP는 Transmission Control Protocol (TCP)와 Internet Protocol (IP) 두 개의 프로토콜로 구성되어 있다. TCP는 연결 지향적인 프로토콜로서, 안정적인 데이터 전송을 보장한다. 데이터를 전송하기 전에 먼저 연결을 설정하고, 데이터 전송이 완료된 후에는 연결을 종료한다. 이를 통해 데이터 손실을 최소화하고, 중복 전송을 방지하여 안정적인 데이터 전송을 보장한다. TCP / IP는 다음과 같은 계층적인 구조로 이루어져 있다. Application Layer(애플리케이션 계층): 응용 프로그램에서 사용하는 프로..

FTP & FTPS

FTP(File Transfer Protocol) 이란? FTP는 인터넷 상에서 파일을 전송하기 위한 표준 프로토콜이며, TCP/ IP를 이용해 통신한다. FTP는 클라이언트와 서버 간에 데이터를 전송하는 데에 사용되며, 주로 웹 서버와 같은 리눅스 기반의 서버에서 사용된다. 기본적으로 암호화되지 않은 텍스트 기반 프로토콜이므로, 데이터 전송 중에 보안에 취약한면이 있다. 그래서 보안성을 강화한 방식인 FTPS가 개발되었다. 일반적으로 20, 21번 포트를 사용한다. FTPS(File Transfer Protocol Secure) 이란? FTPS는 FTP의 보안 버전으로, SSL/TLS 전용 포트인 990포트나 FTP와 동일한 20, 21 포트를 사용한다. FTPS의 방식은 이전에 설명했던 HTTP에서 ..

SSH & SCP & SFTP

SSH (Secure SHELL, 시큐어 셀) 란? SSH란 인터넷을 통해 다른 컴퓨터나 서버에 안전하게 원격으로 접속하고 명령을 실행하는 프로토콜이다. SSH는 암호화된 통신을 사용하기 때문에, 인터넷을 통해 전송되는 데이터가 제3자에게 노출되는 것을 방지할 수 있다. SSH 연결을 설정하려면 SSH 클라이언트를 사용하여 원격 컴퓨터에 접속하고, 원하는 작업을 수행한다. 일반적으로, SSH 클라이언트는 Unix 또는 Linux 시스템에서 기본으로 제공된다. Windows 운영체제를 사용하는 경우, PuTTY와 같은 SSH 클라이언트를 설치해야 한다. SSH는 어디에 사용하는가? 원격 서버에 로그인: SSH를 사용해 원격 서버에 로그인하면 로컬 머신에서 작업한 것과 동일한 명령을 원격 서버에서 수행할 수..

article thumbnail
SSL & TLS

SSL(Secure Sockets Layer) 이란? SSL은 클라이언트와 서버 간의 통신을 암호화하는 보안 프로토콜이다. SSL 3.0 버전에서 보안 취약점이 발견되어, 이후 버전에서는 TLS 프로토콜이 사용된다. TLS는 SSL과 호환되며, 더욱 강력한 암호화 기능을 제공한다. 'HTTPS://' 로 사용되는 웹 사이트가 있다면 SSL을 사용하는 경우라고 볼 수있다. TLS(Transport Layer Security) TLS는 클라이언트와 서버 간의 통신을 암호화하기 위해 대칭키 암호화와 공개키 암호화를 혼합하여 사용한다. 대칭키 암호화는 데이터를 전송하는 데 사용되며, 공개키 암호화는 대칭키를 안전하게 전달하기 위해 사용된다. 또한, TLS는 디지털 인증서를 사용해 서버의 신원을 확인한다. 디지털..

article thumbnail
HTTP & HTTPS

HTTP(HyperText Transfer Protocol) 이란? 기본적으로 HTTP는 애플리케이션 계층에서 인터넷에서 웹 페이지를 전송하기 위해 사용되는 프로토콜이다. HTTP는 클라이언트와 서버 간에 데이터를 주고받을 수 있는 규칙을 정의하고 있다. 클라이언트는 웹 브라우저를 통해 서버에 HTTP 요청을 보내면, 서버는 이 요청에 대한 응답을 다시 클라이언트에게 전송한다. 이 과정에서 요청과 응답은 HTTP 메시지 형태로 전송된다. HTTP는 일반적으로 TCP/IP 프로토콜을 사용한다. 클라이언트가 요청을 보내면 서버는 이에 대한 응답을 전송하고 연결을 종료한다. 이러한 방식을 '요청 / 응답' 모델이라고 한다. ☞ 상태가 존재하지 않는 Stateless 프로토콜 HTTP의 요청 및 응답방식은 인터..