기록 36

로그인

인증과 인가 인증: 유저가 누구인지 확인하는 절차인가: 유저의 요청에 대한 권한을 확인하고, 허가함 세션기반인증방식session과 cookie가 사용되며, 아래와 같이 진행된다. 1. 유저가 로그인을 하면 서버 메모리 상에 세션이 저장됨 (세션 구분 위해 세션id를 기준으로 정보 저장)2. 클라이언트의 브라우저에 쿠키로 세션id가 저장됨3. 브라우저는 해당 사이트에 대한 모든 request에 세션id를 쿠키에 담아 전송4. 서버는 클라이언트가 전송한 세션id와 서버 메모리를 관리하는 세션 id 비교5. 일치 시 인가 수행 사용자가 로그인하면 서버는 사용자의 인증 정보를 기반으로 세션을 생성 및 관리. 사용자가 로그아웃하거나 세션이 만료되면 세션은 삭제됨서버에 저장되는 세션 정보로 인해 서버의 자원이 사용..

cs 2024.07.15

웹브라우저와 캐시

로컬스토리지웹 브라우저에 데이터를 저장하고 관리할 수 있는 웹 스토리지 객체.브라우저 내에 키-값 쌍을 저장할 수 있게 함 key-value 쌍으로 데이터 저장키-값 쌍으로 데이터를 저장키, 값 모두 문자열이어야 함 -> 어떤 타입의 데이터를 넣더라도 모두 문자열로 변환됨영구적인 데이터 저장 및 용량브라우저를 종료해도 계속 남아있다.로컬 스토리지는 보통 5~10mb의 용량 제한으로, 비교적 넉넉하다 오리진별로 생성됨다른 오리진의 로컬 스토리지에는 접근 불가서로 다른 브라우저 탭이어도, 동일한 오리진이라면 동일한 로컬 스토리지 사용 오리진프로토콜+도메인+포트캐싱웹 캐시 또는 HTTP 캐시는 서버 부하를 방지하기 위해 웹 문서, 이미지 등의 자원을 임시 사용자 웹 브라우저에 저장하는 기술로 HTTP 통신시 ..

cs 2024.07.15

HTTP 헤더

HTTP/1.0과 HTTP/1.1의 차이 keep-alive, HOLHTTP/1.0HTTP/1.0은 수명이 짧은 연결HTTP요청은 자체 요청에서 완료되며, 각 HTTP 요청당 TCP 핸드셰이크가 발생되며 기본적으로 한 연결당 하나의 요청을 처리하도록 설계됨.문제점: 한번 연결할 때마다 TCP연결-> RTT가 증가HTTP/1.1HTTP/1.1은 HTTP/1.0의 단점을 보완한 프로토콜.1.keep-alive default매번 데이터를 요청할 때마다 TCP 연결을 하는게 아닌 한번 해놓고 계속해서 데이터를 받을 수 있게 됨- 기본옵션으로 keep-alive 옵션을 하며 가능해짐2. 호스트 헤더서버는 여러개의 호스트를 가질 수 있으며, 이런 유연성을 위해 HTTP/1.1은 헤더에 특정 호스트를 포함할 수 있게..

cs 2024.07.15

IP주소체계

클래스풀(Classful IP Addressing)클래스풀 주소 지정은 IP 주소를 5개의 클래스(A - E)로 나누어서 배분하는 방식. TCP/IP 체계 도입 초반에 제안된 주소지정 개념이다.클래스 A: 네트워크 ID 부분이 1옥텟, 네트워크 주소가 0 ~ 1271클래스 B: 네트워크 ID 부분이 2옥텟, 네트워크 주소가 128 ~ 1911클래스 C: 네트워크 ID 부분이 3옥텟, 네트워크 주소가 192 ~ 2231클래스 D: 멀티캐스트를 위한 주소클래스 E: 연구/개발 용으로 예약한 주소클래스리스와 서브넷마스크, 서브네팅인터넷이 상용화 되며 폭발적으로 증가한 사용량에 따른 IP 주소 부족을 해결하기 위한 방법.클래스리스 주소 지정에서는 클래스 A, B, C 네트워크를 나누는 대신, 원하는 크기의 서브..

cs 2024.07.15

플로이드 워셜(Floyd-Warshall)

플로이드 워셜 알고리즘이란?모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구하는 알고리즘한 번 실행하여 모든 노드 간 최단 경로를 구할 수 있다. 핵심 아이디어는 '거쳐가는 정점'을 기준으로 최단 거리를 구하는 것 다익스트라 알고리즘과의 차이점모든 노드 쌍에 대한 최단 거리 계산음의 가중치를 가지는 그래프에서 사용 가능 다익스트라의 경우 양의 가중치를 가지는 그래프에서만 사용소스코드가 다익스트라에 비해 매우 짧아 구현이 쉬움단계마다 '거쳐 가는 노드'를 기준으로 알고리즘을 수행하지만, 매 단계마다 방문하지 않은 노드 중에서 최단 거리를 갖는 노드를 찾을 필요는 없음 다익스트라의 경우 단계마다 최단 거리를 가지는 노드를 하나씩 반복적으로 선택. 이후 해당 노드를 거쳐가는 경로를 확인하며 최단 거리 ..

cs/알고리즘 2024.07.15

라우팅, 라우터

라우팅네트워크에서 경로를 선택하는 프로세스.컴퓨터 네트워크는 노드라고 하는 여러 시스템 + 노드를 연결하는 경로(링크)로 구성된다.상호 연결된 네트워크에서, 두 노드간 통신은 여러 경로를 통해 이뤄질 수 있다.라우팅은 미리 정해진 규칙을 사용해 최상의 경로를 선택하는 프로세스이다. 중요성네트워크 통신의 효율성 향상 라우터컴퓨팅 디바이스와 네트워크를 다른 네트워크에 연결하는 네트워킹 디바이스보통 둘 이상의 서로 다른 네트워크에 연결한다.쉽게 말하면, 라우팅을 수행하는 것.라우터는 라우팅 테이블을 기반으로 데이터를 다음 목적지에 전달한다.  기본 기능경로설정소스에서 대상으로 이동하는 데이터의 경로 지정네트워크 지표(지연, 용량, 속도 등) 분석 -> 최상 경로 찾으려고 시도데이터전달선택한 경로의 다음 디바이..

cs 2024.07.02

3-way handshake, 4-way handshake

3-Way Handshake 는 TCP의 접속,4-Way Handshake는 TCP의 접속 해제 과정이다. 3-way handshake클라이언트, 서버 간의 논리적 접속을 성립하기 위해 사용하는 연결 확인 방식클라이언트가 서버에 연결 요청 (SYN 단계)SYN Flag = 1Sequenct Number에 시퀀스 번호 a(ISN : 임의의 랜덤 숫자) 함께 전송서버가 연결 허락 (SYN+ACK 단계)SYN Flag = 1, ACK Flag = 1Acknowledgment Number(a + 1), Sequenct Number(다른 ISN b) 전송클라이언트와 서버 연결 설정 (ACK 단계)- ACK Flag = 1- Acknowledgment Number(b + 1) 전송- max segment size ..

cs 2024.07.01

TCP/IP 4계층: 응용 계층, 전송 계층, 네트워크 계층

애플리케이션 계층HTTP, SMTP, SSH, FTP가 대표적이며 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공.응용프로그램에서 데이터가 생성됨HTTP(HyperText Transfer Protocol)서버와 브라우저 간 데이터를 주고받기 위해 설계된 프로토콜.현재는 서버와 서버간 통신할 때에도 많이 이용됨.특징HTTP는 헤더를 통한 확장이 쉽다.Stateless동일한 연결에서 연속적으로 수행되는 두 요청 사이에 연속적인 상태값은 없다.HTTP/1.0기본적으로 한 연결당 하나의 요청을 처리하도록 설계. 이는 RTT 증가를 불러오게 되어 있다.(RTT : 패킷이 목적지에 도달 후 다시 출발지로 돌아오기까지 걸리는 시간)해결방법이미지 스플리팅이미지가 합쳐있는 하나의 이미지를 다운 받고, back..

cs 2024.07.01

MTU, MSS, PMTUD

MTU (Maximum Transmission Unit)네트워크에 연결된 장치가 받아들일 수 있는 최대 데이터 패킷 크기MTU보다 큰 패킷은 지나가지 못하지만, 큰 데이터 페킷을 분할하여 작게 자를 수 있음 패킷의 분할 패킷은 다수의 네트워크 장비를 통해 전달되는데, 이 때 네트워크 장비의 MTU보다 큰 패킷(보통 1500byte)은 패킷이 분할된다. (패킷의 단편화)단편화가 안되는 경우IPv6 패킷라우터에서의 분할을 허용하지 않는다(속도 향상).IPv6를 지원하는 라우터는 MTU를 넘는 IPv6 패킷을 분할하지 않고 전달하지 않는다.MTU를 넘게 되면, 그때서야 호스트에서 단편화를 진행한 후 패킷을 재전송한다.IPv4패킷의 IP 헤더에 Don't Fragment 플래그가 활성화되어 있으면 분할을 하지 ..

cs 2024.06.30