NETWORK 14

[NETWORK] DNS ROUND ROBIN

DNS Round Robin 정의 DNS 서버 구성 방식중 한가지, 도메인에 대한 IP요청 쿼리 시 Round Robin 방식으로 IP를 반환하는 방식 도메인 레코드 정보를 조회하는 시점에서 트래픽을 분산하는 기법 DNS Round Robin 원리 여러대의 웹서버는 각각 공인 IP를 가지고 있음 사이트 접속시 도메인 주소를 브라우저 입력하고 DNS는 도메인 정보를 조회하여 여러대의 서버의 IP리스트 중에 라운드 로빈 형태로 랜덤하게 선택하여 사용자에게 전달 웹사이트에 접속하는 사용자는 사용자의 요청을 실제로 복수의 웹서버에 나뉘어 접속하게 되어 자연스럽게 분산처리 됨 DNS Round Robin 문제점 서버의 수 만큼 공인 IP 주소가 필요하고 부하 분산을 위해 서버의 대수를 늘리기 위해서는 그 만큼의 ..

NETWORK 2021.12.27

[NETWORK] TCP NAGLE

NAGLE 알고리즘 네트워크 패킷을 줄이기 위해 개발된 알고리즘 ACK를 받을 때까지 출력버퍼에 데이터를 저장하였다가 한번에 보내는 방식 TCP에는 Nagle 알고리즘을 기본으로 사용 NAGLE 알고리즘 장단점 서버를 개발할 때에는 이러한 장단점에 맞춰 NAGLE 알고리즘을 On/Off시킴 (예를 들어서 른 반응이 필요한 부분에서는 주로 Nagle알고리즘을 Off시킴) 장점 : 생산하는 패킷량이 줄어 네트워크 사용 효율 높아짐 단점 : ACK를 기다리기 때문에 전송이 지연되어 속도가 저하됨

NETWORK 2021.11.14

[NETWORK] 웹사이트 접속과정

웹사이트 접속과정 브라우저에서 URL 주소 입력하여 주소 접근 도메인으로 접속하게 되면 내부적으로 DNS서버에 접근 DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성하여 HTTP 요청 메시지, TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송 검색된 웹 페이지 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메시지를 생성 생성된 HTTP 응답 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 원래 컴퓨터로 전송 도착한 HTTP 응답 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 데이터로 변환 변환된 웹 페이지 데이터는 웹 ..

NETWORK 2021.11.14

[NETWORK] PDU (Protocol Data Unit)

PDU (Protocol Data Unit) 프로토콜 데이터 단위. 데이터 통신에서 상위 계층이 전달한 데이터에 붙이는 제어정보를 뜻함 각 계층의 데이터의 단위 물리 계층: Bit 데이터링크 계층: Frame 네트워크 계층: Packets 전송 계층: Segment 세션, 표현, 어플리케이션 계층: Message(Data) PDU 구성 SDU(Service Data Unit) : 전송하려는 데이터 PCI(Protocol Control Information) : 제어정보인데 송신자와 수신자 주소, 오류코드 프로토콜 제어 정보등이 있음, 데이터에 제어정보를 덧붙이는 것을 캡슐화라함 SDU + PCI = PDU 캡슐화 어떤 네트워크를 통과하기 위해 전송하려는 데이터를 다른 무언가로 감싸서 보내고 해당 네트워크..

NETWORK 2021.11.04

[NETWORK] Socket.io / WebSocket

WebSocket 개념 웹 페이지의 한계에서 벗어나 실시간으로 상호작용하는 웹 서비스를 만드는 표준 기술 WebSocket 배경 HTTP 프로토콜은 클라이언트에서 서버로의 단방향 통신을 위해 만들어진 방법 실시간 웹을 구현하기 위해서는 양방향 통신이 가능해야 하는데, WebSocker 이전에는 Polling, Streaming 방식을 이용하여 이를 구현하지만 각 브라우저마다 구현 방법이 달라서 개발이 어렵다는 문제점이 발생하여 해결하기 위해 WebSocket이 만들어짐 일반 TCP Socket과 차이점 일반 HTTP Request를 통해 handshaking 과정을 거쳐 최초 접속이 이루어짐 WebSocket 특징 소켓을 이용하여 자유롭게 데이터를 주고 받을 수 있음 기존의 요청-응답 관계 방식보다 더 ..

NETWORK 2021.11.03

[NETWORK] GET / POST 메서드 비교

GET 개념 정보를 조회하기 메서드 서버에서 어떤 데이터를 가져와서 보여주기 위한 용도로 사용 사용방법 URL의 끝에 '?'가 붙고, 요청정보가 key=value 형태의 쌍을 이루어 ? 뒤에 이어서 붙여서 서버로 전송함 요청 정보가 여러개일 경우에는 '&'로 구분 특징 URL에 요청 정보를 붙여서 전송하며, 한번 요청 전송시 데이터는 255자로 제한 URL에 key=value로 노출 되기 때문에 POST방식보다 보안상 취약함 HTTP 패킷의 Body는 비어 있는 상태로 전송, 즉 Body의 데이터 타입을 표현하는 Content-Type도 HTTP Header에 들어가지 않음 POST방식보다 빠름, GET방식은 캐싱을 사용할 수 있으며 GET요청할 경우 해당 응답이 브라우저에 의해 캐싱이 됨 POST 개념..

NETWORK 2021.11.01

[NETWORK] REST API

REST 정의 Representational State Transfer(대표적인 상태 전달)의 약자 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식 REST 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일 REST 네트워크 상에서 Client와 Server 사이의 통식 방식중 하나 HTTP URI를 통해 자원을 명시, HTTP Method를 통하여 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미하며 웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여함 REST 장단점 장점 여러 가지 서비스 디자인에서 생길 수 있는 문제를 최소..

NETWORK 2021.10.31

[NETWORK] CORS

CORS(Cross Origin Resource Sharing)이란 웹 서버에게 보안 cross-domain 데이터 전송을 활성화하는 cross-domain 접근 제여권을 부여 CORS 배경 처음 전송되는 리소스의 도메인과 다른 도메인으로부터 리소스가 요청될 경우 해당 리소스는 cross-origin HTTP 요청에 의해 요청 보안상의 이유로 브라우저들은 스크립트 내에 초기화되는 cross-origin HTTP 요청을 제한함 예시로 XMLHttpRequest는 same-origin 정책을 따르기 때문에 XMLHttpRequest를 사용하는 웹 어플리케이션은 자신과 동일한 도메인으로 HTTP 요청을 보내는 것만 가능했음 웹 애플리케이션을 개선시키기 위해, 개발자들은 브라우저 벤더사들에게 XMLHttpReq..

NETWORK 2021.10.31

[NETWORK] 요청 응답 헤더

HTTP 요청 응답 헤더 HTTP 헤더 내 일반 헤더 항목 (General Header) HTTP 헤더 내 엔티티/개체 헤더 항목 (Entity Header) HTTP 헤더 내 요청 헤더 항목 (Request Header) HTTP 헤더 내 응답 헤더 항목 (Response Header) HTTP 헤더 내 일반 헤더 항목 (General Header) 요청 및 응답 메시지 모두에서 사용 가능한 일반 목적의 헤더 항목 Date HTTP 메시지를 생성한 일시 (RFC 1123에서 규정) Connection 클라이언트와 서버 간 연결에 대한 옵션 설정 Connection : close (현재 HTTP 메세지 직후에 TCP 접속 종료 의미 Connection : Keep-Alive (현재 TCP 커넥션을 유지)..

NETWORK 2021.10.29

[NETWORK] HTTP / HTTPS

HTTP 정의 HyperText Transfer Protocol 웹 상에서 클라이언트와 서버간에 요청/응답을 통해 정보를 주고 받을 수 있는 프로토콜 HTTP 특징 TCP와 UDP를 사용하며, 80포트를 사용 비연결성 (Connectionless) : 클라이언트가 요청을 서버에 보내고 서버가 적절한 응답을 클라이언트에 보내면 바로 연결이 종료 무상태성 (Stateless) : 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지 하지 않음 HTTP 동작과정 클라이언트 -> 요청 -> 서버 -> 응답 -> 클라이언트 -> 연결종료 1 사용자가 웹 브라우저에 URL 주소 입력 2 DNS 서버에 웹서버 호스트 이름을 IP주소로 변경 요청 3 웹 서버와 TCP 연결 시도 (3way-handsha..

NETWORK 2021.10.28