Springboot

톰켓이란?

25G 2021. 8. 20. 12:08

 

시스템 콜

HTTP는 운영체제가 들고 있는 소켓이라는 것을 이용해서 만들어졌는데 만약에 프로그램이 운영체제가 들고 있는 기능을 불러서 사용하는 것을 시스템 콜이라고 한다.

HTTP 기반은 소켓이다.

 

 

웹 서버란?

HTTP 웹 서버는 갑이다. 쉽게 말해서 하나의 영상을 공유할 때 그 영상을 받는 쪽이 갑이 아닌 영상을 주는 쪽이 갑이 되기 때문이다.  갑이라는 건 을이 필요한 데이터를 가지고 있다는 것이다. 

그래서 항상 HTTP통신은 을이 갑한테 REQUEST를 한다. 이때 REQUEST 할 때 위치를 알아야 하기 때문에 IP주소를 알아야 한다. 그리고 두 번째는 REQUST 할 때 정확한 명시가 필요하기 때문에 URL을 사용한다

URL은 자원을 요청하는 주소

그래서 갑(웹서버)은 항상 가만히 있다가 URL을 통해서 자원을 요청을 하면 RESPONSE 해주면 되는 것이다. 여기서 하나 알 수 있는 건 갑은 을의 주소를 알 수 없는 구조이다.

그래서 을의 주소를 알기 위해서는 소켓을 사용해야 한다. 갑과 을의 주소 연결이 지속되어 있어야 한다. 

소켓통신은 연결이 지속되어있는 통신

그래서 갑이 을에게 원하는 시점에 데이터를 전달해 줄 수 있다. 그리고 이때 갑이 들고 있는 자원은 요청 시 때마다 바뀌지 않기 때문에 STATIC자원(정적인 자원)이라고 한다.

 

 

톰캣이란?

흔히 사용하는 아파치라는 웹서버가 있다. 아파치는 을에게 요청이 왔을 때 자원을 응답만 해주면 끝이다. 만약에 요청 시에 JAVA코드나. JSP가 들어있는 파일을 요청하게 되면 아파치는 이 파일들을 이해하지 못하게 된다.

그래서 아파치는 자기가 이해하지 못하는 파일에 대한 요청이 들어오면 톰켓한테 넘긴다. 

그럼 이때 톰켓이 JAVA나 JSP를 컴파일하는데 컴파일이 끝나면 컴파일된 데이터를. HTML에 덮어 씌어준다. 그렇게 HTML 파일로 변환이 끝나면 아파치에게 넘겨준다.

그럼 아파치는 자신이 컴파일할 수 있는 파일을 받았으니 해석을 해주고 그제야 웹 브라우저에 응답을 해주는 것이다.

쉽게 말하자면 톰캣은 아파치가 해석하지 못하는 JAVA코드를 해석해서 HTML 문서로 변환해주는 프로그램이라고 생각하면 될 것 같다.

 

웹브라우저란?

웹브라우저는 한글 2007이랑 똑같다고 생각하면 된다. 단지 응답받은 파일을 읽어 들이는 프로그램이다.

 

'Springboot' 카테고리의 다른 글

STS4툴에서 github 프로젝트 가져오기/javascript환경설정  (0) 2021.12.08
MessageConverter란?(Jackson)  (0) 2021.08.22
AOP 사용해서 sentry및 Log적용  (0) 2021.08.13
AOP실습해보기  (0) 2021.08.13
AOP개념  (0) 2021.08.13