CS/네트워크

    www.google.com에 접속하면 일어나는 일

    www.google.com에 접속하면 일어나는 일

    🔎 www.google.com에 접속해보자 기술 면접 단골 질문인 www.google.com에 접속하는 과정을 생각해보자. 1. 주소창에 www.google.com을 입력하자. 우리가 젤 먼저 해야할 것은 내가 사용하는 브라우저 주소창에 www.google.com을 입력하는 것이다. 2. 브라우저는 캐시에 DNS 레코드가 있는지 확인한 후, www.google.com의 IP 주소를 찾는다. DNS(Domain Name System)는 웹 사이트(URL)의 이름과 링크되는 특정 IP 주소를 유지하는 데이터베이스이다. 사람마다 고유한 주민등록번호가 있듯이, 인터넷의 모든 URL에는 고유한 IP 주소가 할당되어 있다. www.google.com의 IP 주소는 209.85.227.104이다. DNS의 주된 목적..

    DNS Round Robin

    DNS Round Robin

    DNS Round Robin DNS roudn robin에 대해 알아보기 전에 먼저 로드 밸런싱과 round robin에 대해 알아보자. 로드 밸런싱 클라이언트가 인터넷을 통해 서버에 접속하고자 할 때, 많은 양의 요청이 한 번에 서버에 들어오게 되면 과부하가 생길 수 있다. 이를 방지하기 위해 트래픽을 관리해야 하는데 이 방법에는 크게 두 가지가 있다. 서버 성능 향상(Scale Up) 트래픽 분산(Scale Out) 어떤 동네에 아파트 한 채가 있고, 더 많은 가구를 수용하고 싶을 때 scale up은 기존의 아파트에 몇 층을 더 쌓는 것이고 scale out은 아파트를 새로 짓는 것이라고 생각하면 된다. 서버 성능 향상은 말 그대로 서버 자체의 성능을 향상시키는 것이다. 더 비싸고 좋은 서버를 쓰면..

    DNS

    DNS

    DNS DNS(Domain Name System)은 도메인 이름과 IP 주소를 매핑해주는 시스템이다. 주민등록번호, 핸드폰 번호와 같이 사람을 다양한 방식으로 식별할 수 있는 것처럼, 호스트에도 다양한 식별자가 있다. 호스트의 식별자에는 크게 도메인 네임과 IP 주소가 있다. 도메인 네임은 우리가 흔히 보는 www.google.com과 같은 주소이고 IP 주소는 111.111.111.111과 같이 4바이트로 구성된 주소이다. 사람의 입장에서는 IP 주소보다 도메인 네임이 더 기억하기 쉽지만, 라우터 입장에서는 그 반대이다. 도메인 네임은 인터넷에서의 해당 호스트 위치에 대한 정보를 거의 제공하지 못하기 때문에 IP 주소를 사용하고, 둘의 입장을 절충하기 위한 해결사가 DNS인 것이다. DNS Server..

    HTTP vs HTTPS

    HTTP vs HTTPS

    What is HTTP? HTTP는 Hyper Text Transfer Protocol의 약자로, 네트워크를 통해 데이터를 전송하기 위해 사용되는 프로토콜이다. 웹 사이트 콘텐츠 또는 API 호출을 포함해서 인터넷을 통해 전송되는 대부분의 정보는 HTTP 프로토콜을 사용한다. HTTP 메시지에는 요청과 응답의 두 가지 주요 유형이 있다. 서로 다른 종단 시스템에서 수행되는 클라이언트 프로그램과 서버 프로그램은 서로 HTTP 메시지를 교환하여 통신한다. HTTP는 메시지의 구조와 더불어 클라이언트와 서버가 메시지를 어떻게 교환해야 하는지에 대해 정의하고 있다. HTTP의 문제점 & 해결 방법 1. 도청 가능 HTTP 전송은 TCP/IP를 통한 직선 연결인데, 이 연결은 암호화되지 않은 평문 통신이다. 따라..

    TCP vs UDP

    TCP vs UDP

    🚀 전송 계층 전송 계층(Transport Layer)은 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층으로, 대표적으로 TCP와 UDP가 있다. TCP는 패킷 사이의 순서를 보장한다. 또한, 연결 지향 프로토콜을 사용해서 신뢰성을 구축해서 수신 여부를 확인하며 '가상 회선 패킷 교환 방식'을 사용한다. 반면 UDP는 패킷 사이의 순서를 보장하지 않고 수신 여부를 확인하지 않으며 단순히 데이터만 주는 '데이터그램 패킷 교환 방식'을 사용한다. 📯 가상회선 패킷 교환 방식 가상 회선 식별자가 포함되며 모든 패킷을 전송하면 가상 회선이 해제되고 패킷들은 전송된 순서대로 도착하는 방식이다. 📦 데이터그램 패킷 교환 방식 데이터그램 패킷 교환 방식은 패킷이 독립적으로 이동하며, 각각의 패킷이 최적의 경로..

    TCP 3-way handshaking & 4-way handshaking

    TCP 3-way handshaking & 4-way handshaking

    TCP 3-way handshaking(연결 설정) TCP는 신뢰성을 확보할 때 3-way handshaking이라는 작업을 진행한다. 클라이언트와 서버 사이의 연결을 설정하기 위해서 두 호스트 사이에 3개의 패킷이 송신되는데, 이러한 이유로 TCP의 연결 설정 절차를 3-way handshake라고 부른다. 1. 클라이언트 측 TCP가 서버 TCP에게 SYN 세그먼트를 전송한다. SYN은 SYNchronize의 줄임말로, "나랑 동기화하자~" 이런 의미이다. 2. 서버가 클라이언트의 요청을 받으면 클라이언트 TCP로 SYNACK(SYNchronize & ACKnowledgment) 세그먼트를 전송한다. "네가 보낸 SYN 패킷 잘 받았고, 연결 설정에 동의할게~" 이런 의미이다. 3. 클라이언트가 서버..

    HTTP GET vs POST

    HTTP GET vs POST

    What is HTTP? HTTP(Hyper Text Transfer Protocol)는 클라이언트와 서버 간의 통신을 위해 만들어진 프로토콜이다. 클라이언트가 서버에 HTTP 요청을 보내면, 서버가 필요한 정보를 포함하여 클라이언트에게 응답하는 것이다. HTTP Methods HTTP에는 크게 9가지의 메소드가 있다. 1. GET 2. POST 3. PUT 4. HEAD 5. DELETE 6. PATCH 7. OPTIONS 8. CONNECT 9. TRACE 가장 많이 사용하는 것은 GET과 POST 메서드이다. GET GET은 지정된 리소스에서 데이터를 요청하는 데 사용된다. 요청하는 데이터가 HTTP Request Message의 Header 부분에 url 이 담겨서 전송되고, ? 뒤에 쿼리 문자열..