1. 웹 프로그램과 네트워크
웹 프로그램이란 무엇일까요?
우리는 집이나 학교, 회사에서 PC를 사용하고 있습니다.
또한 개인 pc외에도 서버, 스마트폰, 태블릿 등 브라우저가 내장된 컴퓨터는 수 없이 많이 존재하는데요.
여기에서 컴퓨터와 컴퓨터가 온라인 상에서 서로 연결이 되어있는데 이를 네트워크라고 하죠!
네트워크는 많은 서비스를 제공하고 있는데 인터넷 서비스도 이 중 하나입니다.
인터넷 서비스는 브라우저를 통해서 데이터를 주고 받는 서비스입니다.
다시 말해서 웹 프로그램이란, 인터넷 서비스를 이용해서 서로 다른 구성요소들(PC등)이 통신할 수 있는 프로그램이라고 할 수 있습니다.
- 어떤 pc(브라우저)에서 다른 서버(컴퓨터)로 어떤 정보 요청(request)을 하면, 서버는 다시 요청을 한 쪽으로 응답(response)를 해줘야 하는데 이러한 과정의 전체적인 흐름을 웹 프로그램이라고 합니다.
- 인터넷 서비스를 이용해서 서로 다른 구성요소들이 통신할 수 있는 프로그램을 의미합니다.
- 요청했을 때 데이터를 수집, 가공, 응답해주기까지의 과정을 웹 프로그래밍 개발이라고 합니다.
이러한 웹프로그램을 자바를 통해 구현하고자 하는데요. 이를 위해 JSP와 Servlet을 활용하게 됩니다.
2. 프로토콜과 IP
프로토콜(protocol)
우리가 외국인과 소통을 하기 위해서는 통역을 하기 위한 매개가 있어야 하는것 처럼 인터객체가 브라우저가 될수도 있고 메일이 될수도 있는 등 어떤 것일지는 모르겠지만 통신을 하기 위한 규약으로 HTTP, FTP, SMTP, POP등을 프로토콜이라고 합니다.
인터넷 객체는 웹서버로 데이터를 request(요청)하고 웹서버가 데이터를 가공하고 조합해서 인터넷 객체에 response(응답)합니다.
HTTP는 흔히 사용하는 브라우저에서 웹사이트를 요청를 하면 글, 그림, 동영상으로 응답을 해주게 됩니다.
FTP는 파일자체를 웹서버로 보낼 수 있고 서버에서 다시 파일을 내려 받음으로서 응답이 됩니다.
SMTP와 POP는 메일과 관련되어 메일을 주고받는 프로토콜 입니다.
이런것 처럼 통신 규약은 여러가지가 있지만 일반적으로 웹프로그래밍을 하면서 중점적으로 사용하는 것은 HTTP을 주로 사용하게 됩니다.
브라우저를 통해서 데이터를 요청하고 그것을 브라우저를 통해서 다시 응답하는 것입니다..
IP(Internet Protocol)
구글, 네이버 등과 같은 서버에 어떤 데이터를 요청할 때, 주소를 알아야 하는데 이 때의 특정한 주소를 IP address라고 합니다.
숫자로 표현하지만, 가독성이 떨어지므로 DNS란 서버를 둬서 문자로 매핑하여 사용하며 네이버를 예로들면 125.209.222.141의 IP를 www.naver.com로 사용합니다.
IP를 통해 웹서버에 접근했을 때, 웹서버 상에는 프로그램이 여러 개 존재할 수 있고, 원하는 프로그램이 어떤 것인지 찾아야 합니다.
이 때 각 프로그램으로 찾아가는 경로를 port라고 합니다.
그림의 예시에 있는 링크를 보면
http://www.google.com:80/index.html
- http : protocol
- www : 인터넷 서비스 구분
- google.com : 도메인
- 80 : port
- index.html : 가장 먼저 찾아가야 하는 파일명/디렉토리명
이처럼 해석할수 있는데 port의 80포트는 기본포트 이므로 알아서 붙여주고 index.html의 경우 위의 url이 실행 되었을때 가장 먼저 실핼되는 파일러 지정해놓았기 때문에 따로 입력해주지 않아도 됩니다.
3. 웹 프로그램의 동작 원리
- 사용자(pc)가 웹 서버로 요청(request)
- 요청한 데이터를 데이터베이스로부터 가져올지 말지 판별하기 위해 쿼리를 날림
- 결과 반환하여 응답
웹서버에서 데이터를 정적데이터와 동적데이터 2가지로 구분합니다.
정적데이터는 요청받은 데이터를 따로 가공할 필요 없이 html로 그대로 보여줄 파일을 말하고,
동적데이터는 요청한 데이터를 수집이나 가공하여 변경하여 새로운 데이터를 뽑아내서 html로 응답하는데 웹 컨테이너로 데이터를 가공하여 보내는 경우를 의미합니다.
이 글은 실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌를 수강하며 공부한 내용을 정리한 글입니다.
https://www.inflearn.com/course/실전-jsp_renew/dashboard
'Java 관련 > JSP & Servlet' 카테고리의 다른 글
[JSP & Servlet] Servlet Life-Cycle과 메서드 (0) | 2022.08.12 |
---|---|
[JSP & Servlet] request(요청), response(응답) (0) | 2022.08.11 |
[JSP & Servlet] Servlet 맵핑 (0) | 2022.08.10 |
[JSP & Servlet] Servlet 시작하기! (0) | 2022.08.09 |
[JSP & Servlet] 웹 컨테이너 구조와 JSP 시작하기 (0) | 2022.08.08 |