본문 바로가기

컴퓨터 과학(CS)/네트워크8

캐시와 조건부 요청 참고 및 정리: 위키피디아, 모든 개발자를 위한 HTTP 웹 기본 지식(김영한 님) 인프런 강의 캐시 위키피디아 캐시(cache)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 같은 데이터에 반복적으로 엑세스하는 경우나 잘 변하지 않는 데이터의 경우 캐시를 사용하면 더 빠른 속도로 데이터에 접근할 수 있다. 그래서 데이터의 재사용 횟수가 한 번 이상이어야 캐시는 의미가 있다. 여러가지 캐시의 종류 CPU 캐시 디스크 캐시 웹 캐시: 브라우저 캐시, 프록시 캐시 이번 포스팅에서는 웹 캐시를 정리하고자 한다. 캐시의 기본 정의에 따라 웹 캐시는 웹 페이지의 요소를 저장하기 위한 임시 저장소이다. HTTP 요청으로 가져올 수 있는 모든 종류의 리소스(HTML, CSS, JS, 이미지.. 2022. 2. 14.
쿠키(cookie), 세션(session) 쿠키 등장 배경 HTTP 프로토콜에는 비연결성(Connectionless)과 무상태성(Stateless)라는 특징 때문에 사용자의 요청에 대한 응답이 끝나면 연결 상태를 해제하고, 상태 정보를 저장하지 않기 때문에 서버의 자원을 크게 절약할 수 있었다. 그러나 이로 인해 사용자를 식별할 수 없어서 같은 사용자가 요청을 여러번 하더라도 매번 새로운 사용자로 인식하는 단점이 있다. 예를 들어 장바구니에 물품을 담은 경우 새로고침 시 장바구니가 초기화 되어 사용자가 불편을 겪게 된다. 마찬가지로 페이지를 이동할 때마다 로그인을 계속 해야 하는 불편함이 생기게 된다. 이 문제를 해결하기 위한 두 가지 방법이 있다. 1) 사용자 정보를 담은 임시 파일을 클라이언트에 저장하여, 서버는 이 파일로 클라이언트를 식별:.. 2022. 2. 12.
CGI 기술의 등장 배경과 WAS로의 발전 초창기 웹(WWW)은 웹 서버에 미리 만든 웹 페이지(정적 페이지)를 가공 없이 단순히 보여주는 것이 목적이었다. 그러나 많은 웹 사용자들은 미리 저장된 정보를 보는 것 뿐만 아니라, 유저의 이름을 웹 페이지에 나타내고 싶거나 서버에서 정보를 가공하여 유저의 요청에 동적으로 콘텐츠를 만들어주고 싶은 다양한 요구사항(동적 페이지)이 생기기 시작했다. 이런 요구사항에 따라 CGI가 등장하게 되었다. CGI를 통해 서버 프로그램이 다른 프로그램을 불러내 동적인 정보를 처리하여 클라이언트에 송신할 수 있다. 정적(static), 동적(dynamic) 이란 용어는 사용자가 페이지를 요청하는 시점에 페이지 내용의 유지 여부에 따라 구분 정적 페이지: 누가, 언제 요구하더라도 항상 같은 내용을 표시하는 웹 페이지 동.. 2021. 12. 21.
API, HTTP API, REST API 차이 기상청 날씨정보 API, 증권 API, 지도 API 등등 막연하게 API란 단어를 들어왔다. API를 가져다 써, API로 개발한다 등등 개념은 제대로 모르며 사용 해왔기에 이번엔 API에 대해 개념적으로 정리해보고자 한다. API의 마지막 알파벳 i가 뜻하고 있는 인터페이스 개념부터 살펴보자. *인터페이스(Interface): 사물과 인간 사이의 경계에서 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜을 말한다. 예를 들어 TV 리모콘 전원 버튼은 인터페이스다. 사람이 리모콘 버튼을 눌러 TV가 켜지도록 연결하는 매개체이기 때문이다. API(Application Programming Interface) 애플리케이션(응용프로그램)에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능.. 2021. 12. 18.
HTTP/1.1, HTTP/2, QUIC 차이 (TCP, UDP 개념 포함) HTTP 버전별 차이를 설명하기 이전에 위 그림의 통신 모델에서 Transport(전송) 계층의 역할부터 알아본다. 전송 계층은 목적지(서버)에 신뢰할 수 있는 데이터를 전송하기 위해 필요하다. 물론 물리 계층, 데이터링크 계층, 네트워크 계층만으로 목적지에 데이터를 보낼 수 있지만, 중간에 데이터가 손상되거나 유실되더라도 이들 계층에서는 아무것도 해주지 않는다. 데이터가 제대로 전달 되었는지의 역할을 전송 계층에서 해주는 것이다. 전송 계층의 특징을 보면 신뢰성/정확성과 효율성으로 구분할 수 있다. 신뢰할 수 있고 정확한 데이터를 전달하는 통신을 연결형 통신이라 하고, 효율적으로 빠르게 데이터를 전달하는 통신을 비연결형 통신이라 한다. 일반적으로 신뢰성과 정확성이 보장되지 않은 통신은 사용하고 싶지 않.. 2021. 12. 16.
HTTP, Socket 통신의 차이 일반적으로 휴대폰, 컴퓨터 등에서 필요로 하는 데이터들은 Server에서 받아온다. 네트워크를 통해 서버로부터 데이터를 가져오기 위한 통신으로는 크게 HTTP 통신과 Socket 통신 2가지가 있다. 오늘은 이 2가지 통신에 대해 알아보자. HTTP(HyperText Transfer Protocol) 하이퍼 텍스트를 주고 받기 위한 규칙(통신 규약)을 말한다. 하이퍼 텍스트란 연결 고리를 통해 다른 문서로 접근할 수 있는 텍스트를 말한다. HTML의 를 떠올리면 이해하기 쉽다. HTTP라는 통신 규칙을 만든 것은 좋은데, 정작 하이퍼 텍스트를 보기좋게 표현할 방법이 없었다. 누구든 동일한 방법으로 하이퍼 텍스트를 표현할 방법이 필요했다. 이에 팀 버너스리는 인터넷 기반의 하이퍼 텍스트 작성을 위한 방법들.. 2021. 12. 15.
URI, URL, URN 차이 URI 이란? 위키피디아 통합 자원 식별자(Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. URI의 하위개념으로 URL, URN이 있다. 역사 URI와 URL은 역사를 함께 공유한다. 1994년 팀 버너스 리가 하이퍼텍스트를 제안하면서 하이퍼링크의 대상이 되는 자원을 대표하는 짧은 문자열로 URL의 개념을 암묵적으로 도입하였다. 당시 사람들은 이를 "하이퍼텍스트 이름" 또는 "문서 이름"으로 불렀다. Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것 Identifier: 다른 항목과 구분하는데 필요한 .. 2021. 12. 15.
이더넷(Ethernet), 인터넷(Internet)과 웹(web)의 차이 네트워크 서적을 읽던 중, 이더넷이라는 개념이 등장하였다. 인터넷도 아닌 이더넷.. 들어보긴 했는데, 인터넷의 뭔가 하위 버전 느낌?? 인터넷 접속? 웹 접속? 인터넷과 웹은 그럼 같은 거냐 점점 더 미궁속으로.. 속 터진다. 정리하며 명확하게 구분해보자. 위키백과 정의 이더넷(Ethernet) 컴퓨터 네트워크 기술의 하나로, 일반적으로 LAN에서 데이터를 주고 받기 위해 가장 많이 활용되는 기술 규격이다. 허브, 스위치와 같은 장비에 연결된 같은 네트워크 안의 컴퓨터끼리 데이터를 주고 받을 때 사용되며, OSI 모델의 물리 계층(LAN카드, 케이블 영역)에서 신호와 배선, 데이터 링크 계층에서 MAC 주소와 프로토콜의 형식을 정의한다. 인터넷(Internet) 1973년 TCP/IP를 정립한 빈튼 서프.. 2021. 12. 14.