본문 바로가기

Web | Network

(15)
Web - CDN (Content Delivery/Distribution Network) CDN이란? CDN (Content Delivery/Distribution Network) 은 지리적 제약 없이 전 세계에 있는 사용자들에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술이다. CDN은 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화한다. CDN은 각 지역에 캐시 서버 (PoP, Points of Presence) 를 분산 배치하여 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버가 콘텐츠를 전달하게 되어 그 전달 시간을 줄인다. 예를 들어, 미국에 있는 사용자가 한국에 호스팅 된 웹사이트에 접근하는 경우, 미국에 위치한 PoP 서버로부터 웹사이트 콘텐츠를 받게 될 것이다. CDN은 PoP 서버에 콘텐츠를 저장하는 방식과 아키텍처에 따라서 P..
Web - DNS (Domain Name Server) DNS (Domain Name Server) 는 도메인을 저장하는 서버로써, www.example.com 과 같이 사람이 읽을 수 있는 도메인 이름을 192.0.2.1 과 같은 숫자 IP 주소로 변환하여 컴퓨터가 서로 통신할 수 있도록 해준다. DNS 서버는 이름을 IP 주소로 변환하여 도메인 이름을 웹 브라우저에 입력했을 때, 최종적으로 사용자를 어떤 서버에 연결시켜 줄 것인지를 제어한다. 그리고 이 요청을 쿼리 (Query) 라고 한다. 순서 1. 사용자가 웹 브라우저를 열어 주소(www.example.com)를 입력하고 Enter을 누른다. 2. 이 주소에 대한 요청은 일반적으로 인터넷 서비스 제공업체 (ISP, Internet Service Provider) 에서 관리하는 DNS 해석기로 라우팅된..
Web - API API란 Application Programming Interface의 줄임말로. 다른 애플리케이션에서 현재 프로그램의 기능을 사용할 수 있게 해주는 접점을 의미한다. 웹 API는 다른 웹 서비스의 기능을 사용하거나, 자원을 가져올 수 있는 일종의 창구이다. 흔히 API를 '열었다', 또는 '만들었다' 라고 표현하는데, 이는 다른 프로그램에서 현재 기능을 사용할 수 있게 허용했음을 뜻한다. 다른 사람에게 정보를 제공하고 싶은 부분만 API를 열어놓고, 제공하고 싶지 않는 부분은 API를 만들지 않는 것이다. 또한, API를 열어놓았다 하더라도 모든 사람이 정보를 가져갈 수 있는 것이 아닌, 인증된 사람만 일정 횟수 내에서 가져가게 제한을 둘 수도 있다. 위와 같은 서버에 API를 올려 URL을 통해 접근..
Web - 세션 기반 인증과 토큰 기반 인증 (Session and Token Authentication) https://lgphone.tistory.com/65 Web - 쿠키와 세션 (Cookie and Session) 클라이언트에서 보내는 요청에는 큰 단점이 존재한다. 바로 누가 요청을 보내는지 모른다는 것이다. 물론 요청을 보내는 IP 주소나 브라우저의 정보를 받아올 수는 있다. 그러나 여러 컴퓨터가 � lgphone.tistory.com 세션에 대한 내용은 위 글을 참고한다. 인증 방식으로는 크게 두 가지가 최근 웹 개발 트렌드에서 많이 쓰인다. 바로 세션 기반 인증과 토큰 기반 인증이다. 두 가지의 차이점과 어떤 상황에서 어떤 인증 방식을 사용하는 것이 좋을지 한번 다뤄보자. 세션 기반 인증 세션 기반 인증은 쿠키를 사용한다. 인증 절차는 다음과 같다. 유저가 로그인을 하면 세션이 서버 메모리에 저..
Web - IP, 포트, 그리고 로컬호스트 (IP, Port, and Localhost) IP 주소 IP 주소란 TCP/IP 프로토콜을 사용한 통신을 할 때, 송신자와 수신자를 구별하기 위한 고유의 주소를 말한다. 그리고 인터넷에 연결된 모든 통신망과 그 통신망에 연겨로딘 텀퓨터에 부여되는 고유의 식별 주소를 의미한다. 이 주소는 내부에서 32비스 (4byte) 로 기억되지만, 표기할 때에는 4개의 10진수를 점으로 구분하여 표시한다. loopback이라는 개념이 있다. loopback은 호스트에 할당된 아이피를 의미한다. 즉, 내가 갖고 있는 노트북에서 localhost 또는 127.0.0.1로 서버를 띄울 경우 서버를 띄운 노트북에서만 접속이 가능하다. 핸드폰도 같다. 핸드폰에서 localhost 또는 127.0.0.1로 서버를 띄울 경우 핸드폰에서만 접속이 가능하다. 그러나 사설 IP의..
Web - REST REST란 REpresentational State Transfer의 줄임말이며, 서버의 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 가리킨다. 일종의 약속과 같은 것이다. REST API에는 많은 규칙들이 있는데, 이를 전부 행하기는 현식적으로 어렵다. 주소는 의미를 명확히 전달하기 위해 명사로 구성된다. 예를 들어 /user 는 사용자 정보에 관련된 자원을 요청하는 것일 것이며, /post 는 게시글에 관련된 자원을 요청하는 것일 것이다. 그러나 단순히 명사만 있다면 당연히 어떤 동작을 행하는지 어려울 것이다. 이를 위하여 HTTP 요청 메서드라는 것을 사용한다. 메서드 중 자주 사용되는 것들은 아래와 같다. GET: 서버 자원을 가져올 때 사용 POST: 서버에 자원을 등록할 때 사용 PUT..
Web - HTTP 상태 코드 (HTTP Status Code) 200, 500, 404 등의 코드를 본 적이 있을텐데, 이는 HTTP 상태코드이다. 대표적인 상태코드들은 아래와 같다. 2XX: 성공을 알리는 상태 코드. 대표적으로 200 (성공), 201 (작성됨) 이 많이 사용된다. 3XX: 리디렉션 (다른 페이지로 이동) 을 알리는 상태 코드. 어떤 주소를 입력했는데 다른 주소의 페이지로 넘어갈 때 이 코드가 사용된다. 대표적으로 301 (영구 이동), 302 (임시 이동) 가 있으며, 304 (수정되지 않음) 는 요청의 응답으로 캐시를 사용했다는 뜻이다. 4XX: 요청 오류를 나타낸다. 요청 자체에 오류가 있을 때 표시된다. 대표적으로 400 (잘못된 요청), 401 (권한 없음), 403 (금지됨), 404 (찾을 수 없음) 등이 있다. 5XX: 서버 오류를..