WWW
- 인터넷에 연결된 컴퓨터를 토해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간
- 리소스 : 정보
- 리소스를 식별하기위한 식별자
- 웹에 존재하는 리소스에 접근하기위한 유일한 주소
- HTTP 완벽 가이드
http://blog.example.com/entires/1
- UIR Scheme : http
- 호스트명 : blog.examples.com
- 패스 : /entries/1
http://hyeb:pass@kdt.programmers.com:8080/search?q=test&debug=true
- URI Scheme : http
- 사용자 : hyeb:pass
- 호스트명 : blog.examples.com
- 포트번호 : 8080
- 패스 : /entries/1
- 쿼리 파라미터 : q=test&debug=true
상대경로와 절대 경로 시작점은 /foo/bar
상대경로 | 절대경로 |
---|
hoge | /foo/bar/hoge |
hoge/fuga | /foo/bar/hoge/fuga |
./hoge | /foo/bar/hoge |
../hoge | /foo/hoge |
../hoge/fuga | /foo/hoge/fuga |
../../foge | /foge |
URI에서 사용할 수 있는 문자(ASCII)
HTTP : 애플리케이션 컨트롤
- HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜
- 웹에서 이루어지는 모든 데이터 교환의 기초, 클라이언트-서버 프로토콜
HTTP 주요 특징
- TCP/IP 기반
- 요청/응답형 프로토콜
- 동기형 프로토콜
- 스테이트리스
HTML (Hyper Text Markup Language)
하이퍼미디어 시스템
분산 시스템
- 독립적인 여러 대의 컴퓨터가 모여있고, 사용자 입장에서는 그 컴퓨터 집합이 하나처럼 인식 되는 것
- 수많은 서버로 분산되어있고 브라우저를 통해서 연결 됨
참고
DNS(Data Name System)
- 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다.
load Balancer ?
- 로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술 출처
Job Queue?
- 사용자는 실행하려는 프로그램인 "작업"을 일괄 처리 를 위해 대기열에 제출합니다 . 스케줄러 소프트웨어는 실행에 사용할 수 있는 작업 풀로 대기열을 유지 관리합니다.
Job Servers
CDN (Content data network)
- 지리적으로 분산된 여러 개의 서버, 사용자와 가까운 곳에서 전송함으로써 전송 속도를 높임
- 콘텐츠를 사용자의 물리적 위치와 가까운 프록시 서버에 캐싱출처
Web Server(HTTP Web Server)
- HTTP나 HTTPS 프로토콜을 지원하는 서버
- 이미지나 HTML파일 JS 파일 CSS 파일과 같은 정적 리소스를 서포트하기 위해서 만들어짐
Web Application Server(WAS)
- db 조회, 다양한 비즈니스 로직 처리, 동적인 컨텐츠를 제공하기위해 만들어짐 => 정적 컨텐츠도 로드 가능(was 앞단에 웹서버를 배치)
- Web Container : JSP, Servlet (동적)
- Tomcat, apache
- 물리적인 서버 설치후 Tomcat구동, 개발한 프로젝트를 war로 빌드하고 배포하게되면 Web Container가 받아서 동작됨
Jakarta Servlect
- 클라이언트 요청을 받아서 특정 service를 호출할 수 있게됨, jsp 와같은 페이지, http 요청에 특정한 기능을 함
- was의 web container 안에서 동작하게 됨
- 자바 interface로 존재하고 있음, 웹 클라이언트로 부터 요청을 받고 응답을 보내줌
forward ?
- 클라이언트와 통신없이 서버에서만 처리되는 것이기 때문에 리다이렉트보다 나은 성능을 보여준다.
- 객체를 요청에 담고 해당 요청을 사용할 다음 자원에 전송
- 사용자가 최초로 요청한 요청정보는 다음 URL에서도 유효한 것
- 현재 A URL 인데 B를 요청할 경우 URL은 그대로 A
Redirect
- endRedirect() 메서드가 호출되어 Redirect 명령이 들어오면 웹 브라우저에게 다른 페이지로 이동하라고 명령, 웹 브라우저는 URL을 지시된 주소로 바꾸고 그 주소로 이동한다.
- 포워딩보다 느리다
- 마지막으로 수행하는 작업은 새로운 요청에 의한 것이고 이것을 클라이언트가 알고 있기 때문에 브라우저 창의 주소가 처음 요청한 주소가 아닌 다시 요청을 보낼 새로운 주소값으로 변한다.
- 최초 요청을 받은 첫 번째 URL에서 클라이언트에 Redirect할 두 번째 URL을 리턴하고, 클라이언트는 전혀 새로운 요청을 생성하여 두 번째 URL에 다시 요청을 보낸다 => 처음 보냈던 요청 정보는 더이상 유효하지 않은것
- 현재 A URL인데 B를 요청하면 B URL이 된다.
참조