본문 바로가기

네트워크

(5)
HTTP Connection 역사 알아보기 목차 들어가면서 HTTP Connection 기본 개념 HTTP/1.0 Connection HTTP/1.1 Connection 마무리 참조 들어가면서 이번 글을 통해 HTTP Connection 기본 개념과 HTTP 버전별 동작 스펙을 정리해보겠다. HTTP Connection 기본 개념 HTTP 에서는 Connection을 신경쓰지 않는다. Connection은 HTTP 보다 하위 레이어인 transport layer에서 관리된다. HTTP는 꼭 connection-based인 transport protocol을 사용할 필요는 없다. 대신 신뢰성있는 protocol이면 된다. 쉽게 말하면 HTTP 메시지가 유실되지 않는 transport protocol이면 된다. transport protocol에 가..
SSE(Server Sent Event) 개념 정리 들어가면서.. 이번 글에서는 SSE(Server Sent Event) 개념을 정리한다. SSE(Server Sent Event) SSE는 서버에서 클라이언트에게 실시간으로 데이터를 전송하는 기술이다. 기본 컨셉은 HTTP connection을 길게 유지하면서, 서버에서 클라이언트에게 데이터를 전송한다. 아래 그림을 보면 이해하기 쉽다. SSE가 나오게된 배경 SSE는 서버에서 데이터 변경이 있을때 클라이언트에게 실시간으로 알려주기 위해 주로 사용된다. SSE 기술이 등장하기 전에는 Client에서 서버의 데이터 변경을 확인하기 위해 주로 polling 방식을 사용했다. Short Polling 클라이언트에서 주기적으로 API를 호출해 서버의 데이터 변경사항을 확인하는 기법이다. 플로우는 아래 그림과 같다..
HTTPS 적용 방법과 동작원리 들어가면서 인터넷을 통해 다른 서비스를 사용해 봤거나, 개인 프로젝트로 웹 서비스를 개발해본 분들은 HTTPS에 대해 들어본 적 있을 것이다. 이번 글에서는 HTTPS를 적용해야하는 이유, 적용 방법 그리고 동작 원리를 정리하겠다. HTTPS 필요한 이유 HTTPS를 사용해야하는 이유는 크게 3가지 존재한다. (물론 더 있을 수도 있다.) 1. 보안 HTTPS를 사용하면 사용자와 서버간 통신이 암호화돼 제 3자(해커)가 통신 내용을 알 수 없다. 덕분에 사용자에게 신뢰성을 줄 수 있다. 2. 마케팅 마케팅 관점에서 내 서비스가 검색 엔진에 자주 노출되는게 유리하다. 실제로 구글 검색 엔진은 HTTPS가 적용된 사이트에 적용 안된 사이트 보다 더 높은 우선선위를 부여한다. (구글 문서) 3. 기술 선택 H..
WebSocket과 친해지기 들어가면서 서버와 실시간으로 데이터를 주고받는 서비스를 개발하는 데 필요한 WebSocket! 이번 글을 통해 WebSocket 개념을 정리하겠다. WebSocket WebSocket은 뭘까? RFC 6455에 따르면 다음과 같이 나와 있다. The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The security model used for this is the origin-based security model comm..
REST API REST API 나는 다음 두 가지 조건을 만족하면 REST API라고 생각했다. URI는 리소스를 식별하도록 설계 행위는 Http Method를 이용해 표현 이렇게 고민하지 않고 API를 설계했다. 그러다 문득 '내가 하고 있는 게 왜 REST API를 만족하는 거지?', '그럼 REST API는 도대체 뭐지?'라는 의문이 생겼다. 그래서 공부하고 정리해 공유하게 됐다. REST API REST 아키텍처를 지키도록 설계한 API를 REST API라고 한다. 즉, REST 아키텍처에 대해 공부하면, 내가 외우고 있던 개념의 원리를 이해할 수 있을 것이다. REST 아키텍처 REST 아키텍처는 분산 하이퍼미디어 시스템을 위한 아키텍처 스타일이다. (웹이 분산 하이퍼미디어 시스템의 대표적인 예다.) 여기서 ..