Network 10

스티키 세션(Sticky Session), 세션 클러스터링(Session Clustering)이란? + 세션, 로드 밸런싱, Session Storage

세션 (Session) 세션을 사용하는 이유? HTTP프로토콜의 특징이자 약점을 보완하기 위해 사용된다. 1. Connectionless, Protocol 비연결지향 클라이언트가 서버에 요청했을 때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리방식 2. Stateless Protocol (상태정보 유지 안함) 클라이언트의 상태정보를 가지지 않는 서버처리방식이다. 클라이언트와 첫번째 통신에서 데이터를 주고받았다 해도, 두번째 통신에서 이전 데이터를 유지하지 않는다. 하지만 실제로는 데이터유지가 필요한 경우가 많다. 정보가 유지되지 않으면 매번 페이지 이동시 마다 로그인을 해야하거나 장바구니에서 상품을 선택했는데 구매페이지에서 상품의 정보가 사라지는 경우가 생길 것이다. 이러한 이유로 세션 또는 쿠키를..

Network 2023.05.16

JWT, OAuth란 ? + 구조, 예시

서론 프로젝트 중 회원가입 및 로그인 구현을 맡게되어서 JWT와 OAuth에 대해 알아보게 되었다. OAuth OAuth(Open Authentication 또는 Open Authorizaion)는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. OAuth의 기본 핵심은 인증 과정을 제 3자에게 위임하는 것이다. 따라서 제 3자의 인증 정보를 내 서비스에서 이용한다고 볼 수 있다. 여기서 제 3자는 카카오, 구글, 네이버 등이 있다. OAuth가 사용되기 전에는 외부 사이트와 인증 기반의 데이터를 연동할 때 인증 방식의 표준이 없었기 때문에, 기존의 ..

Network 2023.03.30

HTTP 상태코드란 + RGB, redirect

인터넷을 통해 검색을 하면 위와 같은 페이지를 한번쯤은 본적이 있을 것이다. 저 404가 의미하는 것이 무엇인지 지금부터 알아보려 한다. HTTP 상태코드 HTTP 상태코드란 클라이언트가 보낸 요청의 처리상태를 응답에서 알려주는 기능이다. 상태 코드에 따라 요청의 성공/실패 여부를 판단한다. 상태 코드 분류 상태 코드는 5가지로 분류한다. 1xx (Informational) : 요청이 수신되어 처리중이란 뜻 // 거의 사용하지 않음 2xx (Successful) : 클라이언트의 요청을 성공적으로 처리 3xx (Redirection) : 요청을 완료하기 위해 유저 에이전트의 추가 조치 필요 4xx (Client Error) : 클라이언트 오류 5xx (Server Error) : 서버 오류 상세 내용 1x..

Network 2023.03.01

웹 통신의 큰 흐름

웹이란? WWW (world wide web)의 약자이며 인터넷으로 연결된 컴퓨터를 통해 정보를 공유할 수 있는 공간을 뜻한다. 흔히 인터넷과 통용하여 사용하는데 엄연히 다른 개념이다. 인터넷 : 인터넷 프로토콜을 사용해 네트워크와 기기 간 통신하는 컴퓨터 네트워크들이 전세계적으로 상호 연결되어 이루는 시스템이다. 인터넷 vs 웹: 비유를 한 예: 인터넷이 도시라면, 웹은 도시 위에 있는 건물 하나 인터넷이 도로라면, 웹은 도로 위에 있는 자동차 한대 기본적으로 웹 통신은 HTTP 프로토콜을 사용하여 통신한다. 웹에 연결된 컴퓨터는 클라이언트(Client)와 서버(Server)로 구분한다. 클라이언트 : 사용자가 서버에 접속하기 위해 사용하는 프로그램 또는 서비스이다. ex) 웹 브라우저, 모바일 앱 등..

Network 2023.01.29

DNS와 DNS round robin 방식

DNS(Domain Name System) DNS는 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다. 특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 준다. 도메인 네임 시스템은 흔히 "전화번호부"에 비유된다. 인터넷 도메인 주소 체계로서 TCP/IP의 응용에서, www.google.com 이라는 도메인 이름을 DNS 서버에게 제공하면, 24.55.67.22 라는 IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템이다. DNS 과정 1. DNS Query DNS 서버에서 도메인 이름에 해당하는 IP 주소를 요청하여 받아..

Network 2023.01.27

HTTP와 HTTPS 란? + SSL 동작 과정

HTTP (Hypertext Transfer Protocol) HTTP는 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜이다. 웹 서핑을 할 때 서버에서 자신의 브라우저로 데이터를 전송해 주는 용도로 가장 많이 사용된다. 인터넷 초기에 모든 웹 사이트에서 기본적으로 사용된 프로토콜이다. 자세한 HTTP의 동작 방식은 이전 글을 참고해 주길 바란다. 하지만 HTTP에는 단점이 존재했다. 평문 텍스트, 즉 암호화되지 않은 텍스트를 전송하는 프로토콜로, 중간자 공격에 취약하다. 변조, 위장, 도청에 취약하다. 이 말은 즉슨 데이터가 쉽게 도난 당할 수 있다는 것이다. 이 문제를 해결하기 위해 HTTPS가 등장했다. HTTPS (Hypertext Transfer Protocol Sec..

Network 2023.01.22

HTTP 요청 방식 - GET, POST

HTTP(Hyper Text Transfer Protocol) HTTP의 개념 HTTP는 하이퍼텍스트 전송 규약으로, 웹 브라우저(Web Browser) 같은 응용프로그램을 통해 웹 클라이언트(사용자)와 웹 서버(서비스 제공자) 사이 데이터를 전송하는 프로토콜이다. HTTP를 통해 주고 받는 대표적인 파일은 HTML 문서파일이 있다. HTTP의 특징 - TCP/IP를 이용하는 응용 프로토콜(application protocol)이다. - 연결 상태를 유지하지 않는 비연결성 프로토콜이다. - 요청/응답 (Request/Response) 방식으로 동작한다. 연결 상태를 유지하지 않기 때문에 정보를 저장하기 위해 쿠키(Cookie)와 세션(Session)이 등장했다. 쿠키란? 웹 서버가 웹 브라우저에게 보내어..

Network 2023.01.18

TCP / UDP 차이점

TCP (Transmission Control Protocol) TCP 특징 연결형 서비스 연결형 서비스로 가상회선방식을 사용한다. ex) 3-way-handshaking, 4-way-handshaking 자세한 내용은 위에 링크를 클릭해주길 바란다. 흐름제어 (Flow Control) 데이터의 처리속도를 제어한다. 이를 제어함으로써, 수신자가 데이터를 받는 데에 있어 오버플로우 발생을 방지한다. segment 구조에서 receive window가 receiver가 얼만큼의 데이터를 받을 수 있는지에 대한 정보를 나타낸다. 혼잡제어 (Congestion Control) 네트워크 내에서의 데이터 양을 제어함으로써 통신의 혼잡/부하가 생기는 것을 방지한다. 전이중,점대점 방식 전이중 방식: 양방향으로 전송/..

Network 2023.01.16

'TCP 3-way-handshake & 4-way-handshake'는 무엇일까?

TCP란? TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜 중 하나로, 신뢰성을 보장하는 연결형 서비스이다. TCP 특징 전송되는 데이터의 신뢰성 보장 (흐름 제어, 혼잡 제어, 오류 제어) 파일전송에 주로 사용 가상 회선을 만들어 신뢰성을 보장 ※ TCP가 가상회선 방식을 제공한다는 것은 발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다는 말이다. 3-way-handshake 연결하고자 하는 두 장치 간의 논리적 접속을 성립하기 위해 사용하는 연결 확인 방식으로, 3번의 확인 과정을 거친다고 해서 3 way handshake라고 부른다. TCP 3-way-handshake를 간단히 표현하면 다음과 같다. Client -> Server : 내 말 들려? Server -> ..

Network 2023.01.13

OSI 7계층

OSI(Open Systems Interconnection) 7계층 OSI 7계층이란? 통신이 일어나는 과정을 7단계로 정의한 국제 통신 표준 규약이다. 계급, 상하구조가 존재한다. ex)물리적 회선 연결이 있어야 데이터를 보낼 수 있다. 각 계층은 독립되어있다 따라서 용이성, 유지관리가 수월하다. 왜 7계층으로 나눌까? 통신이 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 이상이 생기면 그 부분만 수정할 수 있기 때문이다. OSI 7계층 나열 1) 물리 계층 (Physical Layer) - 리피터, 케이블, 허브 등 데이터를 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간 데이터 단위: 데이터는 0과 1의 비트열, 즉 On,Off 전기적 신호 상태로 이루어진다. 데이터를 전달하기만 한다...

Network 2023.01.06