Replies: 2 comments
1. 왜 프로토콜이 필요한가?프로토콜(Protocol)이란 네트워크로 연결된 서로 다른 시스템(다른 제조사, 다른 OS, 다른 프로그래밍 언어로 만들어진 장치들 등)이 정보를 주고받기 위해 합의한 통신 규칙의 집합이다. 사람이 대화할 때 같은 언어와 문법을 사용해야 의미를 정확하게 전달할 수 있듯이, 컴퓨터도 다음과 같은 사항을 미리 약속해야 한다.
필요성① 서로 다른 시스템 간 통신 네트워크에는 운영체제, 하드웨어, 프로그래밍 언어가 서로 다른 장치들이 연결된다. 그러나 양쪽이 HTTP와 같은 동일한 프로토콜을 사용하면 내부 구현과 관계없이 통신할 수 있다. 즉, 프로토콜은 서로 다른 시스템 사이에서 사용하는 공통 인터페이스 역할을 한다. 필요성② 데이터의 정확한 해석 단순히 데이터를 전송하는 것만으로는 부족하다. 수신자는 데이터의 구조와 의미를 알아야 한다. 예를 들어 다음 값만 전달되면 의미가 불분명하다. HTTP에서는 프로토콜은 데이터의 형식뿐 아니라 각 값이 나타내는 의미론도 정의한다. 필요성③ 통신 순서 제어 통신 과정에서는 메시지를 주고받는 순서도 중요하다. 일반적인 HTTP 통신 흐름은 다음과 같다. WebSocket은 다음과 같은 순서를 사용한다. 이처럼 프로토콜은 메시지의 형식뿐 아니라 통신 절차와 상태 변화까지 정의한다. 필요성④ 에러 처리 네트워크에서는 다양한 문제가 발생할 수 있다.
프로토콜은 이러한 상황을 처리하기 위한 규칙을 제공한다. HTTP의 대표적인 상태 코드는 다음과 같다.
클라이언트는 상태 코드를 통해 요청 결과를 일관된 방식으로 처리할 수 있다. 필요성⑤ 표준화와 확장성 표준 프로토콜을 사용하면 특정 기업이나 프로그램에 종속되지 않는다. 예를 들어 웹 브라우저와 서버가 HTTP 표준을 준수하면 다음과 같은 다양한 조합이 가능하다. 새로운 브라우저나 서버가 등장해도 기존 HTTP 규칙을 따르면 기존 시스템과 통신할 수 있다. HTTP는 상태를 기본적으로 서버가 유지하지 않는 애플리케이션 계층의 요청·응답 프로토콜이며, 확장 가능한 의미 구조와 자체 설명적인 메시지를 사용하도록 정의되어 있다. 2. 프로토콜 사례 분석(HTTP, WebSocket)HTTP의 개념 HTTP는 Hypertext Transfer Protocol의 약자로, 웹에서 클라이언트와 서버가 자원을 주고받기 위해 사용하는 애플리케이션 계층 프로토콜이다. 일반적으로 다음과 같은 구조로 동작한다. HTTP는 요청과 응답을 중심으로 동작한다. RFC 9110에서는 HTTP를 상태 비저장 방식의 애플리케이션 계층 요청·응답 프로토콜 계열로 정의한다. HTTP 요청 구조 HTTP 요청은 일반적으로 다음 요소로 구성된다.
HTTP 응답 구조 응답은 다음 요소로 구성된다.
주요 HTTP 메서드
HTTP의 특징
HTTP의 장점
HTTP의 단점
WebSocket의 개념 WebSocket은 클라이언트와 서버 사이에 지속적인 연결을 형성하고, 양쪽이 자유롭게 데이터를 전송할 수 있도록 하는 양방향 통신 프로토콜이다. WebSocket은 독립적인 TCP 기반 프로토콜이며, 클라이언트와 서버 간 양방향 통신을 제공하도록 정의되어 있다. HTTP와 다른 점 일반적인 HTTP에서는 클라이언트가 먼저 요청해야 서버가 응답한다. WebSocket 연결이 수립되면 서버도 클라이언트의 추가 요청을 기다리지 않고 메시지를 보낼 수 있다. WebSocket API는 브라우저와 서버 사이에 양방향 대화형 통신 세션을 생성할 수 있게 한다. WebSocket 연결 과정 WebSocket은 처음부터 바로 WebSocket 형식으로 시작하지 않는다. 일반적으로 HTTP 요청을 사용해 프로토콜 전환을 요청한다. 1단계: 클라이언트의 연결 전환 요청 주요 헤더의 의미는 다음과 같다.
2단계: 서버의 전환 승인 101 Switching Protocols 응답을 받으면 HTTP 기반의 연결 설정 과정이 끝나고 WebSocket 통신이 시작된다. HTTP/1.1 연결을 WebSocket과 같은 다른 프로토콜로 전환하는 연결 업그레이드 방식이 사용될 수 있다. WebSocket 메시지 전송 WebSocket 연결이 완료된 후에는 클라이언트와 서버가 프레임 단위로 데이터를 전송한다. 주요 프레임 유형은 다음과 같다.
WebSocket은 메시지가 수신되면 이벤트가 발생하는 이벤트 기반 방식으로 사용할 수 있다. WebSocket의 특징
WebSocket의 장점
WebSocket의 단점
|
1. 왜 프로토콜이 필요한가?프로토콜이란 컴퓨터 사이의 통신 규약을 말한다. 현실 세계에서 사람들이 대화할 때 예절, 문법 등의 규칙이 있는 것처럼 컴퓨터 네트워크에서도 윈도우,맥OS,리눅스,iOS,안드로이드 이렇게 수많은 운영체제와 다양한 하드웨어가 존재하는데, 이들이 서로 데이터를 이해하고 교환하려면 공통된 규격이 필요하다. 또한 네트워크 환경은 완벽하지 않다. 데이터가 전송 도중에 유실될 수도 있고, 순서가 뒤바뀔 수도 있다. 그래서 프로토콜은 데이터가 깨졌는지 확인하고 재전송 요청을 하거나 송수신 측의 처리 속도 차이를 조절하거나 네트워크 과부하 방지를 통해 데이터가 정확하게 전달되도록 보장해주기 때문에 반드시 필요하다. 2. 프로토콜 사례 분석(Http, WebSocket)HTTP와 WebSocket은 웹 환경에서 가장 대표적으로 사용되는 두가지 통신 프로토콜이다. HTTP는 클라이언트가 서버에 요청을 보내면, 서버가 그에 대한 응답을 보내고 연결이 바로 끊어지는 구조이다. 때문에 서버는 클라이언트의 이전 상태를 기억하지 않는다. 또한 오직 클라이언트가 먼저 요청해야 서버가 응답할 수 있기 때문에 클라이언트 주도적인 단방향 통신이라고 볼 수 있다. 웹소켓은 HTTP의 단방향 통신 한계를 극복하기 위해 만들어진 프로토콜로, 한번 연결이 맺어지면 양방향 통신이 실시간으로 가능하다. 서버도 언제든지 클라이언트로 데이터를 보낼 수 있다는 말이다. HTTP는 매 요청마다 헤더 정보를 반복해서 보내야 하지만, 웹소켓은 최초 연결 이후에 아주 작은 데이터 프레임만 주고 받기 때문에 네트워크 자원이 매우 효율적이다. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
📆 일자: 26년 8월 1일(금)
발제 의도
1. 왜 프로토콜이 필요한가?
2. 프로토콜 사례 분석(Http, WebSocket)
All reactions