캐시 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소 캐시의 장점 비싼 네트워크 사용량을 줄일 수 있다. 빠른 브라우저 로딩 속도로 사용자에게 편의를 제공한다. 캐시 덕분에 캐시 가능 시간동안은 네트워크를 사용하지 않아도 된다. 캐시가 없다면? 비싼 인터넷 네트워크 비용을 계속 지불해야 한다. 브라우저 로딩 속도가 느리기 때문에 사용자가 불편할 수 있다. 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 캐시의 기본 동작과정 먼저, 첫번째 요청시 클라이언트가 웹 브라우저를 통해 서버에 데이터를 요청한다. (GET / starts.jpg) 그러면 서버는 데이터와 함께 캐시의 유효시간을 같이 전달해준다. HTTP/1.1 200 OK Content-Type: image/..
쿠키(Cookie)란? 쿠키는 클라이언트의 정보를 가지고 있는 텍스트 형식의 데이터이다. 클라이언트가 저장하게 되며, 서버가 쿠키를 요청할시 서버로 전달하게 된다. 언제 사용할까? 로그인 세션 유지 (보통 세션 ID 값을 통해서 처리함.) 광고 정보 트래킹 네트워크 트래픽 추가 유발 쿠키가 사용되는 것을 간단한 예제와 함께 알아보자. **request** POST /login HTTP/1.1 user=BB_GG ------------------------------- **response** HTTP/1.1 200 OK Set-Cookie: user=BB_GG BB_GG님이 로그인했습니다. 클라이언트가 로그인을 할 때 user 이름을 같이 보내주게 되면 서버에서는 쿠키를 설정하여 클라이언트의 웹 브라우저에..
이번에는 HTTP 헤더에 대해서 알아보려고 한다. HTTP 헤더란? HTTP 전송에 필요한 모든 부가정보를 넣는 부분이다. 예를 들어 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트 등등 많은 정보가 들어가게된다. 그렇기에 무수히 많은 필드가 존재하며, 필요시에는 임의의 필드를 만들 수도 있다. 헤더는 보통 다음과 같은 구조를 가지고 있다. GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com ----------------------------------------------- HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length:3323 ... 위 내용에서..
이번엔 HTTP 상태코드에 대해서 알아보려고 한다. HTTP 상태코드란? 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다. 100번대 ~ 500번대에 대한 상태코드가 정의 되어있고 그 내용들을 살펴볼 예정이다. 1xx (Informational) - 요청이 수신되어서 처리 중인 상태 100번대의 상태코드는 거의 사용되지 않기에 개념만 알아두면 될 것 같다. 2xx (Successful) - 요청이 정상 처리된 상태 종류로는 다음과 같다. 200 OK 가장 많이 볼 수 있는 상태코드이다. 요청이 성공적으로 처리됬을 때의 상태이다. HTTP/1.1 200 OK Content-Type: appplication/json Content-Length: 34 { "username":"G..
오늘은 이전글인 HTTP 메서드에 대한 연장선인 활용방법에 대해서 알아보겠다. HTTP 메서드는 서버에 데이터를 전송하게 될 때 사용하게된다. 먼저 GET 메서드이다. GET - 쿼리 파라미터를 통한 데이터 전송 주로 검색어를 치거나 정렬 필터를 사용할 때 사용하게된다. (조회할 때 주로 사용) 다음으로는 POST, PUT, PATHC 메서드이다. POST, PUT, PATCH - 메시지 바디를 통한 데이터 전송 주로 회원가입, 상품주문, 리소스 등록과 변경 등 사용된다. 4가지 상황을 예로 들어 각 메서드를 활용해보자. 1. 정적 데이터 조회 이미지, 정적 텍스트 문서를 얻어올 때 사용된다. 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회가 가능하다. GET ..
이번에는 HTTP의 메서드에 대해서 알아보려고한다. 우리가 HTTP API를 설계해야하는 상황이 왔을 때 우리는 HTTP 메서드에 대해서 알아두어야만 한다. 예를들어 조회기능, 등록 기능, 수정 기능, 삭제 기능등 여러가지 기능을 구현 할 때에 말이다. 그렇다면 많이 쓰이는 HTTP의 메서드들에 대해서 알아보자 먼저 Get 메서드이다. Get : 리소스 조회 - 서버에 전달하고 싶은 데이터는 query를 통해서 전달함 (메시지 바디를 통할 수도 있지만 권장하지 않는다.) *** Get 방식(예제) Get /members/100 HTTP/1.1 Host: localhost:8080 이런 식으로 접근 = 요청 members/100 안에있는 메시지 내용을 가져와서 응답 데이터를 보낸다. 다음..
이번 글에서는 HTTP에 대해서 알아보려고 한다. HTTP (HyperText Transfer Protocol) HTTP는 말그대로 HyperText를 전송하기 위한 프로토콜이다. (HyperText란 기존의 그냥 문서에 쓰이는 텍스트가 아니라 비선형적인 신개념 텍스트라는 의미에서 만들어진 용어이다. 예를 들어서 하이퍼텍스트에는 하이퍼링크를 통해 다른 문서로 이동할 수도 있는 기능들이 존재한다. ) 주로 HTML 문서를 주고 받는데 쓰인다. (여기서의 HT도 하이퍼텍스트이다.) 지금은 텍스트뿐만이 아니라 이미지, 음성, 영상, 파일 등등 거의 모든 형태의 데이터를 전송이 가능하다. 바야흐로 HTTP의 시대라고 할 수 있을만큼 요즘에는 HTTP를 어디에서나 많이 사용하고 있다. 이 HTTP에..
이번에는 URI에 대해서 알아보려고 한다. 평소 우리가 사용하던 URL은 이 URI의 하위 개념이다. 어떤 느낌인지 자세히 알아보자. URI (Uniform Resource Identifier, 통합 자원 식별자) URI는 인터넷에 있는 자원에 접근하기 위한 식별자이다. 위치나 이름으로 자원에 접근할 수 있으며, 인터넷에서의 기본적인 요소이기 때문에 항상 IP와 함께 있는 정보이다. 이런 URI는 아래 두 개념이 존재한다. URL (Uniform Resource Locator, 자원의 위치를 지정) 우리가 가장 흔히 들어보던 URL이다. 자원에 접근할 수 있는 위치를 나타내는 요소이다. 문법도 우리가 가장 많이 봐왔던 주소랑 비슷하다. Protocol://[userinfo@]host[:po..
이번에는 DNS에 대해서 알아보려고 한다. 이전 글에서 설명했다 싶이 DNS는 IP 주소를 일일히 입력하지 않아도 통신을 할 수 있도록 도와주는 요소이다. DNS(Domain Name System) DNS는 호스트의 네트워크 주소를 도메인 이름으로 변경하거나 혹은 그 반대의 역할을 수행할 수 있도록 개발된 기술이다. 우리가 흔히 사용하는 www.naver.com 같은 요소들이 바로 도메인 이름이다. 쉽게 예를 들자면 전화번호부 같은 느낌으로 알아두면 좋을 것 같다. 010-1234-5678 같은 번호를 '홍길동' 같은 이름으로 저장하는 것 처럼 같은 원리이다. 그렇기에 IP 주소를 잊어버리거나 변경되어 모르게되는 상황이 오더라도 이 도메인 이름을 통해서 접속 할 수 있기 때문에 문제가 되지 않..
오늘은 CDN에 대해서 알아보려고한다. 최근에 개발하면서 CDN에 대해서 알게되었는데, 사용하면서도 도무지 이게 뭐고 어떤 원리로 작동하는지 궁금하였기에 알아보게되었다. CDN (Content Delivery Network, 콘텐츠 전송 네트워크) CDN이란 지리적으로 분산된 여러 개의 서버를 말한다. 웹 콘텐츠를 사용자와 가까운 곳에서 전송함으로써 지연시간을 줄이고 전송속도를 높일 수 있다. 다른 장점으로는 보안성과 가용성이있다. CDN 제공업체는 실제 사용자가 아닌 해커나 다른 트래픽이 접속하려 한다면 방화벽 역할을 하여, DDos 공격 등의 보안성에서도 강한 모습을 보여줄 수 있다. 또한, 많은 트래픽이 몰린다면 아무리 대형업체라도 힘들어질 수 있기 마련인데 이를 CDN 같은 기술로 ..