HTTP, 웹 서버 동작방식
HTTP
HTTP란, 서버와 클라이언트가 인터넷상에서 데이터를 요청/응답(request/response)을 통해 주고받기 위한 프로토콜(protocol)이다.
- 프로토콜 = 서로 정해놓은 규약
HTTP 메시지 (요청/응답)
HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식이다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지고, 응답(response)은 요청에 대한 서버의 답변이다.
출처 : MDN https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
주요 응답 코드
코드 | 메시지 | 내용 |
---|---|---|
200 | OK | 정상 |
204 | No Content | 문서 없음 |
400 | Bad Request | 잘못된 요청 |
403 | Fobbiden | 권한 없음 |
404 | Not Found | 찾을 수 없음 |
405 | Method Not Allowed | 허용하지 않는 메소드 |
500 | Internal Server Error | 서버에러 |
503 | Service Unavailable | 서버 한계 초과 |
실제로 자주 볼 수 있는 오류코드는 404와 500다.. 🙃 404는 매핑이 잘 안됐을 때, 500는 어딘가 연산이 잘못됐을 때 우리를 반겨준다.
클라이언트-서버 구조
출처: 위키백과 클라이언트-서버 모델
- 클라이언트(Client) : 서비스를 제공하는 서버에게 정보를 요청하여 응답받은 결과를 사용하는 주체라고 할 수 있다. 대표적으로 웹 브라우저를 뜻하는데 사용자를 가리키기도하고 단말기를 가리키기도 한다.
- 서버(Server) : 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 혹은 SW를 말한다. 웹 서버 SW는 대표적으로 Apache, Nginx 등이 있다.
WAS (Web Application Server)
WAS는 일종의 미들웨어로 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다. 우리가 아는 Tomcat이 WAS라고 생각하면 된다.
- WAS는 동적 서버 컨텐츠를 수행.
- 클라이언트와 DBMS 사이에서 비즈니스 로직을 동작하는 미들웨어.
- DBMS(DataBase Management System) : 다수의 사용자가 DB 내의 데이터에 접근할 수 있도록 해주는 SW.
[참고] 웹 서버 vs WAS
- WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있다.
- 현재는 WAS가 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다.
- 규모가 커질수록 웹 서버와 WAS를 분리한다.
- 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 웹서버와 WAS를 대체로 분리한다.
Comments