[Spring Boot] 스프링부트 (IntelliJ)/Spring boot

[Spring boot]Socket(소켓), http통신, 웹서버, 톰켓 쉽게 이해하기

류도토리 2024. 2. 13. 15:23

Socket(소켓) : 운영체제가 가지고 있는 것

 

소켓통신

A와 B가 채팅을 하려고 한다.

A가 5000번 소켓을 오픈한다. -> 5000번은 연결용도의 소켓이다.

B와 연결이 되면 5000번은 닫히고 예를들어 5001번 소켓으로 연결되어 채팅를 한다.

5001번을 만들 때는 새로운 스레드를 만듬

5000번 - 메인스레드로 연결만 해주는 기능

 

소켓통신의 장점

연결이 끊어지지 않지만 부하가 크다.

 

스레드를 이용하면 time slice를 통해서 동시동작 처럼 보이게 시간을 쪼개서 동작시킬 수 있다.

 

http통신

- 문서를 전달하는 통신

- http 확장자로 만들어진 문서를 필요한 사람에게 제공

- statless 방식 사용

- 한 소켓으로 명령을 수행하고 끊어버림

- 전에 통신했던 사람인지 인식하지 못함

 

웹 서버

- 내 컴퓨터에 있는 파일을 친구에게 공유한다고 한다.

- ip주소, 필요한 자원의 위치를 가지고 request라는 요청을함

- 요청이 오면 그 정보를 토대로 response(응답)을 해준다.

- 나는 친구의 ip주소를 알 필요가 없다. 요청이 올 때 응답만 해주면 된다.

- 정해진 요청에 정해진 자원(static자원) / 정적인 자원을 줌 

 

톰켓

 - 웹서버에 요청(request)으로 .jsp나 자바 코드를 보내면 이 언어를 알지 못한다.

 - 이때 톰켓을 사용하면 .jsp안에 자바 코드를 컴파일하고, 컴파일된 데이터를 .html에 덮어씌운다.

- .html을 웹서버에 돌려주고 이 파일을 응답해준다.

 

- 웹브라우저는 .html, javaScript, css, avi 등을 읽고 보여줄 수 있다.

- 톰켓은 웹브라우저에 들어온 .jsp파일을 .html파일로 변환해주어 웹브라우저에서 열 수 있게 바꿔준다.