🌐 네트워크
[네트워크] 애플리케이션 계층 - DNS 서버의 동작 원리
HTTP 메시지를 만들어서 OS에게 의뢰하여 액세스 대상에게 송신하게 된다. 브라우저는 URL을 해독해서 HTTP 메시지를 만드는데 이때 URL 안에 쓰여있는 서버의 도메인명에서 IP 주소를 알아내야 한다. 🟩 도메인명과 IP 주소 01. TCP/IP 네트워크 TCP/IP 네트워크는 서브넷이라는 작은 네트워크를 라우터(router)로 접속하여 전체 네트워크를 구성하게 된다. TCP/IP 네트워크는 IP 주소로 통신 상대를 지정한다. 클라이언트가 HTTP 메시지를 외부 대상에게 보내려고 했을 때 허브가 HTTP 메시지를 받아서 라우터에게 넘겨준다. 라우터는 IP 주소를 보고 다음 상대(라우터)를 확인하고 송신한다. 이것을 계속 반복하면서 클라이언트 HTTP 메시지가 상대방에게 도착하는 방식이다. 02. 클..
[네트워크] 애플리케이션 계층 - HTTP, Cookie, Web Cache
🟩 01. HTTP (HyperText Transfer Protocol) 이란? HTTP는 인터넷에서 웹 페이지 같은 문서를 전송하기 위해 사용하는 프로토콜이다. 클라이언트 프로그램과 서버 프로그램은 서로 HTTP 메시지를 교환하며 통신한다. 01-01. HTTP는 TCP를 전송 프로토콜로 사용한다. 클라이언트는 먼저 서버에 TCP 연결을 시작한다. (3-way-handshake) 브라우저와 서버 프로세스는 소켓 인터페이스를 통해서 TCP를 접속한다. 클라이언트 프로세스 측 소켓 인터페이스 클라이언트 프로세스와 TCP 연결 사이에서의 출입구이다. 즉, 클라이언트는 HTTP 요청 메시지를 소켓 인터페이스로 보내고 HTTP 응답 메시지를 받기도 한다. 서버 프로세스 측 소켓 인터페이스 서버 프로세스와 TCP..
[네트워크] 애플리케이션 계층 - 네트워크 애플리케이션의 원리
🤔 네트워크 애플리케이션 구조란 뭘까? 자주 사용하는 웹 애플리케이션을 예시로 떠올려보자. 웹 애플리케이션에서는 서버와 클라이언트로 구별되고 서로 통신하는 프로그램이다. 그러면 웹 애플리케이션을 네트워크 애플리케이션 구조라고 생각할 수 있을까? ❌ 그건 아니다. 웹 개발자로서 학습하면서 웹 애플리케이션 구조만을 생각할 수 있다. 하지만 실제로 네트워크 애플리케이션 구조는 웹말고도 다양한 시스템이 존재한다. 🟩 01. 네트워크 애플리케이션 구조 네트워크 애플리케이션 구조는 애플리케이션의 설계 및 구성 방식을 의미한다. 대표적인 구조로 "클라이언트-서버 구조", "P2P 구조"가 있다. 01-01. 클라이언트-서버 (Client-Server) 구조란? 기본적인 구조로, 클라이언트와 서버 간의 역할을 분리한다..
[네트워크] 메시지 무결성과 전자서명
🟧 메시지 무결성이 필요한 이유 간단하게 말하면, 메시지가 중간에 조작되거나 변조되지 않도록 보장해야 한다. 메시지가 변경되었다면 수신자는 잘못된 행동을 할 수도 있기 떄문이다. 네트워크 내 한 쌍의 라우터 간의 경로를 결정하기 위해 링크 상태 라우팅 알고리즘을 사용 네트워크가 있다. 링크 상태 알고리즘에서 각 라우터는 네트워크 내 모든 다른 라우터들에게 링크 상태 메시지를 보내야 한다. 라우터의 링크 상태 메시지는 직접적으로 연결된 이웃들의 목록과 이 이웃들로의 연결 비용을 포함하고 있다. 한 라우터가 모든 다른 라우터로부터 링크 상태 메시지를 받으면 네트워크 전체 지도를 생성해 낼 수 있다. 최소 비용 라우팅 알고리즘을 수행하여 포워딩 테이블을 설정할 수 있다. 알고리즘에 행할 수 있는 비교적 단순한..
[네트워크] 암호화의 원리
🟧 안전한 통신 - 기밀성편 안전한 통신을 하기위해서는 다음과 같은 사항을 고려해야 한다. 기밀성 송신자와 지정된 수신자만이 전송되는 메시지 내용을 이해할 수 있어야 한다. 즉, 도청자가 메시지를 가로채도 해석할 수 없도록 암호화해야 한다. 🟧 침입자 시나리오 송신자와 수신자는 제어 메시지(제어 세그먼트)와 데이터 메시지(데이터 세그먼트)를 교환한다. 이때 침입자는 다음과 같은 일을 할 수 있다. 채널상의 제어 메시지 및 데이터 메시지를 기록 메시지, 메시지 내용을 조작, 삽입, 삭제 침입자의 일을 좀 더 쉽게 풀어 얘기해보면 다음과 같다. 패스워드와 데이터를 훔친다. 다른 사람인 것처럼 위장하여 통신 연결을 가로챈다. 시스템 자원에 부하를 일으켜서 사용자의 서비스를 거부하게 만든다. 이러한 문제를 해결..
[네트워크 - HTTP] PUT과 PATCH의 차이는 뭘까
Http Method에서 PUT과 PATCH의 차이에 대해서 알아보겠습니다. 🟧 01. PUT 메서드와 PATCH 메서드는 무슨 일을 할까 ? Http Method 중에서 PUT과 PATCH는 자원을 수정할 때 사용하는 메서드이다. 그렇다면 왜 수정하는 메서드가 두 가지(PUT, PATCH)가 있을까 ? 🟧 02. PUT 메서드는 자원을 대체한다. PUT 메서드는 자원을 완전히 대체하거나 생성하는 메서드이다. 좀 더 쉽게 말하면 자원을 덮어씌운다. 먼저 PUT 요청과 기존 데이터이 있다고 하자. 이 때 name은 "하이에나" -> "헤나"로 수정되기를 원한다. 실제로 PUT 메서드 요청을 보내면 아래와 같이 된다. PUT 메서드를 요청했을 때 name만 변경될 거 같지만 실제로 같은 값인 userId도 ..
-
이전
- 1
-
다음