개요 클라이언트는 서버에게 요청을 하여 원하는 자원을 얻어낸다. 사람들은 저마다 자주 사용하는 웹 사이트가 있고, 그것은 같은 요청을 자주 서버에게 보내는 것과 같다. 내가 원하는 자원은 매번 같은데 꼭 서버로 부터 매번 받아야 할까? 웹 브라우저에서는 캐시 저장소가 존재하여 요청에 대한 응답을 저장해 놓고 사용할 수 있다. 이번 포스팅에서는 그 기술인 Cache의 개념을 배우고 Cache가 관리되는 과정을 적어보려한다. 목차 Cache Last-Modified ETag 프록시 캐시 서버 Cache-Control 완전한 캐시 무효화 Cache 여기서 Cache란, 서버로부터 받은 응답을 저장하는 것을 말한다. 서버와 클라이언트 사이의 통신은 네트워크를 타기 때문에 메모리, 디스크에서 자원을 가져오는 것보..
개요 외국에서는 쿠키를 통에 담아두고 먹고 싶을 때마다 꺼내서 먹는다고 한다. 우리가 오늘 배울 쿠키(Cookie)의 이름의 유래라고 한다. 이번 포스팅에서는 쿠키가 등장하게 된 배경과 쿠키란 무엇인가에 대해 알아보고자 한다. 목차 HTTP의 한계 쿠키(Cookie) 쿠키로 인증 상태 유지하기 주의점 HTTP의 한계 HTTP의 중요한 특징 중 하나는 Stateless(무상태)이다. HTTP에 대해서 모른다면 이전 포스팅을 참고하기를 바란다. 간단히 설명하자면 HTTP의 메시지들끼리는 공유 가능한 데이터(상태)를 갖지 않는 것이다. 이러한 특징은 사용자의 인증을 요구하는 웹서비스들이 나오면서 문제에 직면하게 된다. 다음과 같은 상황을 생각해보자. 철수는 옷을 사기위해 온라인 쇼핑몰인 "바니또 몰"에 접속하..
개요 이번 포스팅의 목적은 HTTP의 중요 개념을 정리하기 위함이다. 굉장히 많이 사용하지만 그에 비해 뚜렷하게 실체가 보이지 않는 개념을 뚜렷하게 보기 위해 정리를 해보고자 한다. 목차 웹 브라우저 요청 흐름 HTTP : Hyphertext Transfer Protocol HTTP 특징 웹 브라우저 요청 흐름 이전 포스팅에서 우리가 메시지를 서버에 보내는 과정을 다음과 같이 설명했다. 메시지를 생성한다. - 애플리케이션 계층 SOCKET라이브러리를 사용하여 OS 계층으로 전달한다. - 애플리케이션 계층 TCP 또는 UDP 정보를 생성하여 메시지 데이터에 포함시킨다. - 전송 계층 IP 패킷을 생성하여 3번에서 만든 데이터를 포함시킨다. - 전송계층 LAN 카드를 이용하여 서버와 통신 - 네트워크 인터페..
개요 우리는 인터넷을 통해 쉽게 데이터를 전송하고 받는다. 또한 실시간으로 영상을 스트리밍 할 수도 있다. 어떻게 데이터를 원하는 서버로 정확히 전송할 수 있고 받을 수 있을까? 이번 포스팅에서는 서버와 클라이언트간의 통신이 어떻게 이루어지는지 강의를 통해 배운 내용을 담고자 한다. 목차 통신 프로토콜 IP : Internet Protocol IP 의 한계 TCP : Transmission Control Protocol UDP 통신 프로토콜 우리가 중고시장에서 서로 물건을 주고 받기로 할 때 약속해야 하는 것이 있다. 어디서 어떤 방식으로 물건을 전달하고 대가는 어떻게 지불할 것인지 정해야 한다. 인터넷을 통해 서버와 클라이언트가 데이터를 주고받을 때도 마찬가지다. 데이터를 어디서 보내는 것인지 어디로 ..
HTTP와 HTTPS 개요 웹을 배운다면 HTTP와 HTTPS의 차이는 보안이라는 것은 알 것이다. 이번 포스팅에서는 HTTP가 무엇이고, 문제점은 무엇인지 알아보고 HTTPS는 그 문제점을 어떻게 해결하였는지 알아보도록 한다. 목차 HTTP GET방식 POST방식 HTTP의 문제점 HTTPS 대칭키 암호화 비대칭키 암호화 HTTPS의 데이터 암호화 과정 정리 HTTP HTTP란 Hyper Text Transfer Protocol의 약자로서, 클라이언트와 서버 사이에서 이루어지는 요청/응답(request/response) 프로토콜이다. 클라이언트와 서버가 통신하기 위해서 서로가 보내는 데이터를 이해할 수 있도록 양식을 정해놓을 필요가 있었고 그렇게 등장한 것이 통신규약, 즉 HTTP이다. 클라이언트가 서..