Computer Theory/Web 14

Computer Theory/Web
브라우저 작동 방식

이번에는 브라우저가 어떻게 작동하는지에 대해서 알아보고자 한다. 브라우저에서 중요한 것 웹 성능에 있어서 가장 주요한 문제는 지연시간과 대부분 브라우저가 싱글 쓰레드로 동작한다는점이다. - 지연시간 : 빠른 로딩에 있어서 지연시간은 이겨내야 할 중요한 문제이다. 빠른 로딩을 위해 최대한 빠르게 요청하는 것과 웹 최적화를 통해 페이지 로드가 최대한 빠르게 이루어지도록 한다. - 싱글 쓰레드 : 대부분의 브라우저는 싱글 쓰레드이다. 원활한 상호작용을 하기 위해서는 메인 쓰레드가 요청된 모든 작업을 수행하면서도 유저의 상호작용에 반응할 수 있도록 하는 렌더링 시간이 가장 중요하다. 따라서 이를 위해 메인 쓰레드의 책임을 줄여주는 방식으로 웹 성능 향상을 이루고자 한다. 브라우저 동작 흐름 브라우저는 다음과 같..

Computer Theory/Web
HTTP 와 HTTP Request/Response 구조

HTTP HyperText Transfoer Protocol 이라고 하며, HTML 문서를 교환하기 위해 만들어진 protocol (통신 규약)을 의미한다. TCP/IP 기반으로 되어있으며 request와 response 구조로 되어있다. 주로 http request을 서버에 보내고, http response을 보내는 구조로 이루어 진다. 클라이언트와 서버의 모든 통신은 요청과 응답으로 이루어 진다. Request Message HTTP Request Message는 공백을 제외하고 3가지로 나누어진다. Start Line Headers Body Start line HTTP Request Meassge의 시작 라인으로, 3 가지 부분으로 구성되어 있다. HTTP method : HTTP 메소드 Reque..

Computer Theory/Web
인터넷의 역사와 작동방식

이번 포스팅은 인터넷이 어떻에 동작하는지에 대한 배경과 동작방식에 대해서 다뤄보고자 한다. 짧게 보는 인터넷 역사 인터넷은 처음 1960년대 미 육군의 프로젝트에서 시작되었다. 사실 군사 통신 목적으로 개발이 되으며, 시간의 지남에 따라 1980년대 많은 국립 대학에서 연구 시설 용도로 많이 사용되었고 발전을 거듭해 공공의 기반의 용도로 변화되었다 작동 방식과 변화 과정 두 개의 컴퓨터가 통신이 필요할 때, 일반적으로 다른 컴퓨터와 물리적(선)으로 혹은 무선으로 서로의 컴퓨터를 연결한다. 하지만 이는 2개의 컴퓨터의 통신에서만 제약되어 있는 상황인 것이고, 만약에 많은 컴퓨터가 서로 통신이 필요하다면 어떻게 될까? 아마도 다음과 같은 상황이 벌어질지도 모른다. 각 컴퓨터에 잘 연결이 되었지만, 이런 환경..

Computer Theory/Web
웹 인증 (쿠키, 세션, 토큰)과 JWT

웹 로그인을 구현하다 보면 세션, 토큰, 쿠키, JWT 등의 생소한 용에 대해서 다루는 이야기를 자주 들을 수 있다. 이번에 DRF-simplejwt을 이용하여 jwt 작업을 했는데 세션과 토큰 쿠키 JWT에 대한 개념이 명확하지 않아 이번 기회에 정리해보고자 한다.   쿠키쿠키는 사용자를 기억하기 위해 서버가 사용자의 브라우저에 전송하는 작은 데이터 조각으로, key=value 형식의 문자열 데이터의 묶음이다. 브라우저는 이 문자열 데이터를 저장해 놓았다가 동일한 서버에 재요청 시 쿠키 데이터를 전송할 수 있다. HTTP 프로토콜은 기본적으로 비연결성과 무상태성을 가지고 있기 때문에 서버와 클라이언트 간의 연결 유지를 구현하기 위해 쿠키를 도입했다. 쿠키는 로컬에 저장되며, 브라우저를 종료해도 파일로 ..

Computer Theory/Web
SSH로 원격 서버에 접속하기

SSH SSH(Secure Shell)는 원격 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜을 의미한다. 기존의 유닉스 시스템 쉘에 원격 접속하기 위해 사용하던 Telnet, Rlogin, RSH는 데이터 전송시 암호화가 이루어지지 않아서 스니핑을 통해 데이터가 노출되기 쉬운 문제점을 가지고 있었다. SSH 프로토콜은 안전한 원격 접속과 보호되지 않은 네트워크에서 안전한 네트워크 서비스를 제공하기 위해 암호화를 사용함으로써 이전의 문제점을 해결 하였다. SSH 프로토콜은 클라이언트-서버 모델로 동작하며 대칭키 방식, 비대칭키 방식, 해시 알고리즘을 사용하여 인증 및 암호화를 수행한다. 대칭키 방식 : 동일 키값으로 암호화와 복호화를 하는 방식, 클라이언트-서버 간 전체 연결을 암호화에 사용 비대..