본문 바로가기

CS41

[컴퓨터구조] 캐시 메모리 사상(Mapping, 매핑) 방식: 직접사상, 연관사상, 집합 연관사상 캐시 메모리도 파일 시스템의 inode처럼 인덱싱해서 데이터를 불러옵니다. 이러한 매핑 방식에는 직접사상, 연관사상, 집합 연관사상이 있으며 각각 자세히 알아봅니다. [ Contents ] 1. 캐시 메모리 CPU가 최근 사용한 데이터를 임시 저장하는 버퍼 형태의 고속 기억장치 캐시 메모리는 CPU(레지스터)와 주기억장치 중간에 위치하는 고속의 버퍼 메모리입니다. CPU는 캐시 - 주기억장치 - 보조기억장치 순으로 데이터를 탐색하며, 자주 찾는 데이터를 캐시에 (임시)저장해둡니다. 이때 데이터를 캐시에 저장해두는 방식을 '사상(Mapping)'이라고 합니다. CPU가 캐시에 해당 데이터가 있는지 판별하고 빠르게 찾을 수 있도록 아래와 같은 매핑 방식을 사용합니다. 2. 직접 사상 (Direct Mappi.. 2023. 7. 20.
[네트워크] 확실한 캐시 무효화 응답: no-cache, no-store, max-age=0, must-revalidate [ Contents ] 1. 확실한 캐시 무효화 응답 Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache 응답 헤더의 Cache-Control를 보면, 어떻게 캐시를 관리해야 하는지 알 수 있습니다. 사실상 리소스를 운용하는 서버가 클라이언트에게 내린 지시입니다. 하지만 브라우저에서는 이를 임의로 해석해서 캐시를 저장해두는 경우가 있습니다. 이러한 경우를 방지하고자 서버에서는 위와 같이 엄중경고를 하곤 합니다. 2023.07.12 - [CS] - [네트워크] HTTP 브라우저와 웹 서버 캐시 동기화하는 방법: Last-Modified, ETag 이용 [네트워크] HTTP 브라우저와 웹 서버 캐시 동기화하는 방법: L.. 2023. 7. 12.
[네트워크] 프록시(Proxy) 서버와 CDN, 프록시 캐시 서버의 차이점 프록시 서버와 프록시 캐시 서버, CDN는 모두 오리진(Origin)서버와 클라이언트 사이에서 HTTP 통신을 중계한다는 공통점이 있습니다. 위 개념에 대해 자세히 알아보고, 각각 차이점에 대해서 살펴봅니다. [ Contents ] 1. 프록시 서버 (Proxy Server) 클라이언트와 서버 사이의 중계 서버 프록시 서버는 클라이언트와 오리진 서버(본래 서비스를 제공하는 서버)를 중계하는 역할을 합니다. 괜히 한 다리 건너서 통신하기 때문에 비효율적일 거 같지만, 사실 프록시 서버를 이용하는 쪽이 보안과 성능 측면에서 더 유리합니다. 먼저 보안적으로는 프록시 서버에서 기본적인 필터링과 엑서스 제어 등을 제공하기 때문에, 원 서버로의 직접 공격을 막을 수 있습니다. 또한 클라이언트는 프록스 서버의 ip로.. 2023. 7. 12.
[네트워크] HTTP 브라우저와 웹 서버 캐시 동기화하는 방법: Last-Modified, ETag 이용 HTTP 통신에서 캐시를 관리하기 위한 헤더와 관련 프로세스를 알아보겠습니다. [ Contents ] 1. 브라우저 캐시 (Browser Cache) 클라이언트의 웹 브라우저에서 저장하는 캐시 UI/UX는 사용하기 편하고 익숙해야하기 때문에, 웹 UI는 쉽게 변하지 않습니다. 동일한 HTML, CSS, JS, 이미지 파일을 그대로 사용한다는 뜻이죠. 이러한 데이터를 매번 요청하고 응답받는 건 네트워크 자원 낭비이기 때문에, 브라우저에서 따로 캐시로 저장합니다. 2. HTTP 캐시 관련 헤더 cache-control: 캐시 유효기간, 검증방법 설정 웹 서버와 브라우저 캐시가 서로 다르면 안되므로, 서버에서는 브라우저 캐시를 제어하는 응답 헤더를 덧붙입니다. no-store: 캐시 저장 안함 no-cache.. 2023. 7. 12.
[네트워크] 쿠키의 정의와 쓰임: Set-Cookie, Cookie 헤더 해석 HTTP의 '무상태성' 특성 때문에, 브라우저에서는 '쿠키'라는 데이터를 저장하고 관리합니다. HTTP 통신에서 쿠키가 어떻게 쓰이고, 관리되는지에 대해 알아보겠습니다. [ Contents ] 1. 쿠키 (Cookie) 서버에서 필요한 상태정보와 이전 작업물을 임시 저장한 데이터 HTTP 통신에서 서버는 클라이언트의 상태, 임시 정보를 저장하지 않습니다. 임시 데이터를 DB 동기화하기에는 적합하지 않을뿐더러, 클라이언트마다 특정 서버를 배정하기에는 효율적이지 않기 때문입니다. 따라서 프로세스에 필요한 일련의 임시 데이터는 클라이언트 쪽에서 저장하며, 이를 '쿠키(Cookie)'라고 합니다. 2023.07.06 - [CS] - [네트워크] HTTP의 특징: 무상태성(Stateless), 비연결성(Conne.. 2023. 7. 11.
[네트워크] HTTP 헤더: Referer, User-Agent, Server, Host HTTP의 주요 헤더를 알아봅니다. [ Contents ] 1. Referer 이전 웹 페이지 주소 (유입 경로) Referer 헤더는 이전 페이지 주소입니다. 뒤로 가기 했을 때, 가게 되는 페이지 주소예요. 서버측에서는 Referer 헤더를 통해 어디서 유입되었는지를 분석합니다. 2. 클라이언트, 서버 스펙 정보 User-Agent: 클라이언트 애플리케이션 정보 Server: 요청 처리하는 메인 서버 정보 요청 헤더의 User-Agent는 클라이언트가 사용하는 기기, 운영체제, 브라우저 등의 정보를 담고 있습니다. 반면 응답 헤더의 Server는 서버의 Spec, OS 등의 정보가 표시됩니다. User-Agent를 통해 클라이언트의 로컬 PC/모바일 환경을 알 수 있으며, 오류 및 장애 발생 시 유용.. 2023. 7. 11.
[네트워크] HTTP 메서드의 속성: 안전, 멱등, 캐시가능 HTTP메서드에는 GET, POST, PUT, PATCH, DELETE 등이 있습니다. 메서드별 속성에 대해서 알아보겠습니다. [ Contents ] 1. 안전 (Safe Method) 실행 후 리소스 변경 없음 실행해도 데이터는 변하지 않는 메서드입니다. SQL에서 SELECT(조회문) 같은 느낌이예요. 안전한 메서드에는 GET이 있습니다. GET도 서버로부터 리소스를 조회하는 성격이 강하죠. 2. 멱등 (Idempotent) 여러 번 실행해도 한 번 실행한 결과와 같음 f(x) = f(f(x)) 멱등함수와 동일한 특성입니다. GET 요청을 여러 번 하더라도 응답은 똑같고, PUT 메서드로 여러 번 덮어쓰거나 DELETE 메서드로 삭제한 걸 또 삭제해도 결과는 똑같습니다. 3. 캐시 가능 (Cachea.. 2023. 7. 10.
[네트워크] HTTP 메서드: GET, POST, PUT, PATCH, DELETE 요청할 때 사용하는 HTTP 메서드에는 GET과 POST 그리고 PUT, PATCH, DELETE가 있습니다. 각 종류별 기능과 쓰임에 대해서 알아봅니다. [ Contents ] 1. HTTP 메서드 종류 GET: 리소스 조회 POST: 데이터 및 프로세스 처리 (주로 INSERT) PUT: 리소스 대체 (없으면 생성) PATCH: 리소스 부분 갱신 DELETE: 리소스 삭제 2. GET과 POST 메서드 1) GET 메서드 GET /search?q=jangThang HTTP/1.1 Host: star7sss.tistory.com HTTP 메서드는 크게 Header와 Body로 이루어져 있습니다. GET메서드는 일반적으로 Header만 사용하며 Body는 사용하지 않습니다. 서버에 전달하고 싶은 데이터는.. 2023. 7. 10.
[네트워크] HTTP 메시지 구조: 요청/응답 메시지 (시작라인, 헤더, 공백라인, 바디) HTTP 메시지 구조에 대해서 알아봅니다. HTTP는 시작 라인, 헤더, 공백 라인, 바디로 이루어져 있고 각 기능과 역할에 대해서 살펴보겠습니다. [ Contents ] 1. HTTP 메시지 구조 서버와 클라이언트는 HTTP 메시지를 통해 통신합니다. 클라이언트는 서버에 요청 메시지를 보내고, 서버는 클라이언트에게 응답 메시지를 보냅니다. 요청이냐 응답이냐에 따라서 내용은 달라질 수 있지만, HTTP 메시지의 구조는 동일합니다. HTTP 메시지는 Start-line, Header, Message Body로 구성되어 있으며 헤더와 바디 사이에는 이를 구분해주는 공백 라인(CRLF)이 한 줄 있습니다. 2. HTTP 요청 메시지 Get /search?q=HTTP HTTP/1.1 (start-line) Ho.. 2023. 7. 7.