웹 브라우저에 www.google.com을 입력하면 기본 포트 80에서 Google 서버에 대한 연결 (DNS 조회를 통해 www.google.com이 어떤 IP 주소인지 확인)을 열고 웹 페이지를 요청합니다. Google 서버는 브라우저가 화면에 그리는 웹 페이지로 응답합니다 (일반적으로 이미지, CSS 및 JavaScript를 추가로 호출하여).
localhost : 8080에 갈 때도 똑같습니다. 로컬 호스트 서버 이름은 항상 실행중인 컴퓨터로 확인되며 가짜 IP 주소 127.0.0.1을 사용합니다 (컴퓨터에는 두 개의 IP 주소가 있습니다.이 가짜 주소는 모든 컴퓨터에 있고 실제 주소입니다). 따라서 포트 8080에서 로컬로 수신 대기하는 Tomcat 인스턴스가 있어야합니다.
기본 http 포트 80이 아닌 포트 8080이 왜 필요한가요? 웹 서버가 이미있는 경우에 대비합니다.
일반적으로 웹 서버와 앱 서버가 있습니다.
Apache 서버와 같은 웹 서버는 정적 페이지를 제공합니다. 사실상 그것은 일방적 인 FTP 서버와 같습니다. TCP 연결을 열고 HTTP 명령 (일반적으로 GET)을 사용하여 파일을 요청하십시오. 웹 서버는 HTML 파일을 반환하고 브라우저는 해당 파일을 다운로드하여 구문 분석하고 다른 이미지가 필요한지 확인합니다. 웹 서버는 매우 빠르지 만 기본적으로 로컬 디스크에서 파일을 들어 올리고 반환합니다.
Tomcat 또는 JBoss와 같은 App Server는 일반적으로 디스크에서 직접 들어 올리지 않고 요청하는 페이지를 "만들기"위해 코드를 실행한다는 점을 제외하면 비슷합니다. 해당 페이지를 만드는 것은 응용 프로그램에 달려 있습니다. 그것은 데이터베이스에 연결하고, 프로그램을 실행하고, 무작위로 페이지를 제공 할 수 있습니다 ... 등 온라인 뱅킹에 로그온하면 앱 서버가 세션을 설정하고 쿠키에 세션 ID를 반환합니다. 로그 아웃 할 때까지 요청을 할 때마다 브라우저가 다시 전송됩니다. "내 잔액"페이지를 요청하면 은행에서 세션 ID를 기반으로하는 사용자를 찾은 다음 데이터베이스로 이동하여 이름과 은행 잔고를 찾은 다음 "Hi John Smith, 잔액 € 100입니다. " 앱 서버는 일반적으로 웹 서버보다 느리지 만 더 다양합니다.
많은 장소는 기본 포트 80에서 WebServer를 실행 한 다음 보조 포트에서 실행되는 AppServer (8080)를 갖습니다. 따라서 정적 페이지는 빠르게 제공되며 사용자가 동적 페이지로 연결되는 링크를 클릭하면 링크가 8080 (앱 서버가 응답)으로 이동하거나 웹 서버가 특정 요청을 앱 서버에 전달하도록 설정됩니다 ( 어떤 경우에는 여전히 기본 포트 80처럼 보이므로 사용자에게는 조금 더 좋아 보입니다).
물론 이것은 매우 높은 수준의 개요이며 흑백은 없습니다. 대부분의 웹 서버는 스크립트 (일반적으로 perl 또는 PHP를 사용하여 스크립트를 통해 CGI를 통해 CGI)를 실행하여 일부 동적 컨텐츠를 작성할 수 있으며 대부분의 앱 서버는 웹 서버와 같은 일반 파일을 제공 할 수도 있습니다. 실제로 앱 서버를 실행하고 Tomcat 포트 번호를 8080에서 80으로 변경할 수 있습니다.
마지막으로 많은 응용 프로그램이 각 요청에 대해 전체 HTML 페이지를 제공하지 않고 (앱 서버에 느리고 비효율적 인 것으로 보임) 대신 AJAX를 사용하여 JSON 또는 XML을 보내는 데이터 스 니펫으로 응답합니다. 검색어를 입력하는 데 사용한 원래 www.google.com으로 돌아가서 검색을 누르고 결과 페이지를 얻습니다. 대신, 입력하는 동안 브라우저는 AJAX 요청을 지속적으로 Google에 전송하여 지금까지 입력 한 내용을 기반으로 최신 검색 결과로 응답 한 다음 브라우저가 페이지를 업데이트합니다. 이는 사용자가 페이지를 더 빠르고 동적으로 제출할 때까지 기다릴 필요가 없다는 것을 의미합니다 (구식 데스크톱 앱처럼).