2024/07/15 5

로그인

인증과 인가 인증: 유저가 누구인지 확인하는 절차인가: 유저의 요청에 대한 권한을 확인하고, 허가함 세션기반인증방식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