TIL

HyeBin, Park·2022년 4월 18일
0

TIL

목록 보기
9/12
post-thumbnail

WWW

  • 인터넷에 연결된 컴퓨터를 토해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간

URI (Uniform Resource Identifier)

  • 리소스 : 정보
  • 리소스를 식별하기위한 식별자
  • 웹에 존재하는 리소스에 접근하기위한 유일한 주소
  • 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이 된다.
    참조

0개의 댓글