본문 바로가기

네트워크

(17)
[네트워크] 쿠키, 세션, 캐시란? 이전에 HTTP통신에 관해 설명하며 쿠키와 세션에 대해서 가볍게 언급한 적이 있었다.이번 글에서는 이 쿠키와 세션이 무엇인지, 우리가 일상적으로 사용하는 로그인을 위해 사실은 어떠한 과정이 이루어지는지,더불어 캐시는 또 무엇인지에 대해서 알아보고자 한다. 쿠키(Cookie)쿠키는 클라이언트가 웹 사이트를 진입하면서 생성되며, 우리가 웹사이트를 이용하면서 쌓이는 정보들을 담은 데이터이며 이는 클라이언트(정확히는 사용자의 웹브라우저)에 저장된다.예를 들어, 홈쇼핑을 예를 들어보면 우리의 로그인 상태, 장바구니 내용과 같은 정보를 저장하고 있는 작은 데이터이다. 그렇기에 개발자 도구를 이용해 해당 웹사이트에 대한 쿠키를 삭제하면 이전에 로그인이 되어있었음에도 불구하고 새로고침하면 다시 로그인 이전상태로 돌아가..
[네트워크] WAS란? WAS는 Web Application Server의 약자이다. WAS에 대해 알기위해서는 우선 웹서버에 대해서 알아야한다고 생각한다.웹서버를 우리에 일상에 대입하여 생각해본다면 우리가 현재 진입하고자 하는 웹사이트에 대한 소스코드(HTML, CSS, JS)를 가지고 있는 컴퓨터를 의미한다. 이전 단계에서 언급한 TCP와 같은 통신 방식을 통해 우리는 웹 서버로부터 웹페이지를 공급받고 브라우저는 이를 랜더링하여 우리에게 보여준다.  하지만, 우리가 현재 사용하고 있는 티스토리만 봐도 한번 페이지를 랜더링하면 끝이 아니라 다른 사용자 혹은 본인에 의해 지속적으로 업데이트되고 변경되는 내용들이 발생한다. 이로 인해 현대의 웹사이트는 단순히 정보와 문서를 제공한다는 의의를 넘어서 사용자와의 상호작용을 베이스로 ..
[네트워크] 로드밸런서와 CDN(Content Delievery Network)이란 로드밸런싱이란 과도한 트래픽이나 요청이 발생했을때를 대비해서 이러한 요청을 여러개의 서버로 분산시켜 서버가 받는 부하(트래픽)을 감소시켜주는 행위를 의미한다.그렇기에 로드밸런서(Load Balancer)란 인터넷 트래픽이나 여러 요청을 여러개의 서버에 분산시켜 처리하게 해주는 시스템이다. 이러한 로드밸런서가 필요한 이유는 교통 체증을 생각하면 쉽게 이해할 수 있다. 도로위에 어떤 이유에서인지 차가 너무 많아 꽉 막히면 답답하듯히 서버또한 마찬가지이다. 서버를 가진 컴퓨터의 성능과 소프트웨어적인 스펙에 따라서 한번에 처리할 수 있는 트래픽은 결국 한정적이기에 이용자가 너무 한번에 몰린다거나 너무 많은 접속자, 요청이 발생하면 우리가 이용할려고 하는 서비스의 지연이나 중단이 발생할 수 있다 (Ex. 수강신청..
[네트워크] 도메인 입력시 발생하는일에 관하여 우선, 도메인(Domain)이란 쉽게 말하자면 우리가 웹사이트에 진입하기 위해 웹 브라우저에 입력하는 www.뭐시기.com과 같은 사이트 주소이다. 이를 URL과 혼동할 수 있는데 (필자는 그랬다...) 결론적으로 URL이라는 큰 개념안에 도메인 주소가 있다고 이해하면 좋다. URL은 'https://www.example.com:443/index.html?page=2&lang=en#section1'와 같이 사용되는 프로토콜, 도메인 주소, 포트 등 인터넷 상에 리소스를 찾기위한 모든 전체 주소이다. 그리고, 도메인 주소는 example.com 이 부분을 의미한다. 그렇다면 이제 이 도메인 주소를 입력했을때, 어떤 일이 발생하는지, 어떠한 과정을 거친 이후에 우리에게 웹 페이지를 보여주는지에 대해서 알아보..
[네트워크] HTTP의 보안 취약점과 HTTPS 이전 글에서 HTTP이 무엇인지, 버전별로 어떠한 특징을 가지고 있는지에 대해서 설명했다.그리고 설명하면서 HTTP는 1.0, 1.1, 2.0, 3.0 모두 기본적으로 평문 통신을 지원하기에 보안상에 취약점이 있다는 것을 소개해드렸을 것이다. 그렇다면 평문 통신이 뭐기에 보안상에 취약하다는 걸까 궁금하실 수 있다 (아니면 말고 ㅎㅎ) HTTP의 보안상 취약점도청될 수 있다 (평문 통신으로 인한 취약점) 평문으로 통신하기때문에 중간에 탈취될 시 정보가 그대로 탈취된다송신측에서 암호화 및 수신측에서 복호화 하는 방식으로 해결이 가능하나 리소스가 많이 든다위장된 상대와 통신이 가능하다 (무상태성으로 인한 취약점) HTTP는 기본적으로 무상태 프로토콜이기에, 각 요청은 독립적으로 수행되며, 이때 통신 상대를 확..
[네트워크] UDP란? 이전 글에서 HTTP 3.0은 UDP기반의 QUIC 프로토콜을 사용한다고 했다. 그리고 TCP통신에 대해서 다루면서도 TCP는 높은 신뢰성을 보장하지만 네트워크 지연이 발생할 수 있고, 구현이 더 어렵다는 단점이 있다고 했다. 이러한 TCP와는 대조적인 녀석이 있는데 이게 이번 글에서 다뤄볼 UDP이다.  UDPUDP또한 TCP와 마찬가지로 데이터를 세그먼트 단위로 전송한다는 측면에서는 같지만 그것 이외에는 상당 부분이 다르다UDP의 특징은 다음과 같다비연결 지향 (Connectionless)UDP는 연결을 설정하지 않고 데이터를 전송하는 비연결 지향적인 프로토콜신뢰성 없는 전송오류 검출은 제공되지만, 재전송이나 순서 보장은 지원하지 않는다단순하고 경량연결 설정 및 유지에 필요한 오버헤드가 적다높은 성능..
[네트워크] HTTP의 버전별 특징 HTTP는 1989년에 Tim Berners-Lee 선생님을 필두로 한 CERN 기관의 연구자들이 개발했다고 한다. 그리고 기술 면접을 준비하는 필자와 같은 개발자 지망생들이 알아둬야할것은 이처럼 나름의 긴 역사를 가진 HTTP가 어떻게 업데이트되왔고, 버전마다 어떤 특징을 가지고 있는지라고 생각한다. 이 글에서는 HTTP 1.0이전의 버전에 관해서는 다루지 않겠다 HTTP 1.01. 단일 연결 (Single Connection) 단일 연결이라 함은 요청을 보내고, 이 요청을 처리하고, 그게 끝이라는 것이다. 이를 클라이언트-서버 모델의 관점에서 보면 말 그대로 클라이언트는 요청을 서버로 보내고 서버는 요청에 대한 응답을 제공한다는 의미이다.  2. 평문 통신 (Plain Text Communicatio..
[네트워크] TCP/IP란? 이번글에서는 이전글에서 소개만 한 TCP/IP에 관하여 이야기해보고자 한다.TCP/IPTCP는 HTTP를 포함한 많은 프로토콜의 기반으로 하는 전송 계층의 프로토콜이다.쉽게 설명하자면 TCP는 네트워크상에서 데이터를 보다 신뢰성있게 효율적으로 전송하기 위한 하나의 방법이다.그리고 TCP/IP를 함께 부르는 이유는 TCP는 IP위에서 작동하기 때문이다.IPIP는 그래도 친숙한 편일것이다. IP는 특정 컴퓨터의 고유한 주소값? 정도로 알고 있는 분들이 많을 것이다.이또한 틀린 설명은 아니다. 하지만 IP는 Internet Protocol의 준말로 단순히 각각의 컴퓨터나 장치가 서로를 식별하기 위한 고유한 주소뿐만 아니라 데이터의 전송 방식또한 포함한다.이에 대해 좀 더 자세하게 설명해보자면 IP는 데이터를 ..