HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 3기 교육생
/
📚
3기 스터디 가이드
/
🧑‍💻
CS 학습 및 면접대비 스터디
/
🕸️
웹 서버 → 브라우저
🕸️

웹 서버 → 브라우저

URL
발표자
은지
과목
웹
웹 서버는 요청을 처리하고 응답을 전송하기까지의 과정
웹 서버는 요청을 받고 요청 라인과 헤더 및 본문의 정보를 기반으로 요청 처리 방법을 결정한다.
 
용어 정리웹 서버의 기능1. 클라이언드 커넥션 수락2. 요청 메시지 수신요청 메시지를 파싱할 때 웹 서버가 하는 일3. 요청 처리4. 리소스의 매핑과 접근5. 응답 만들기6. 응답 보내기커넥션7. 로깅정리참고 자료

용어 정리

  • 커넥션
     

    웹 서버의 기능

    • 가장 중요한 기능은 클라이언트가 요청하는 HTML 문서나 각종 리소스를 전달하는 것
    • 대표적으로 Apache, nginx, IIS등이 있다.
    📌
    WAS(웹 어플리케이션 서버) - HTTP를 통해 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어 - 동적인 페이지 처리를 담당한다. - 대표적으로 톰캣, WebLogic, WebSphere, iPlanet 등이 있음.
     

    1. 클라이언드 커넥션 수락

    클라이언트의 접속을 받아들이거나, 거부할 수 있다.
    📌
    웹 서버는 어떤 커넥션이든 마음대로 거절하거나 즉시 닫을 수 있다.
    클라이언트가 이미 서버에 대해 열려있는 지속적 커넥션을 갖고 있다면 해당 커넥션을 사용한다.
    만약 커넥션이 없다면 클라이언트는 서버에 대한 새 커넥션을 연다.
     

    2. 요청 메시지 수신

    커넥션에 데이터가 도착하면
    웹 서버는 네트워크 커넥션에서 그 데이터를 읽어 들이고 파싱하여 요청 메시지를 구성한다.
    notion image

    요청 메시지를 파싱할 때 웹 서버가 하는 일

    • 요청 줄을 파싱하여 메서드, URL, 버전 번호를 찾음 (스페이스로 분리되어 있음/요청줄은 캐리지 리턴 줄바꿈(CRLF) 문자열로 끝남)
    • 메시지 헤더를 읽음 (마찬가지로 CRLF로 끝남)
    • 헤더의 끝을 의미하는 CRLF로 끝나는 빈 줄을 찾음 (존재한다면)
    • 요청 본문이 있다면 읽어들임(요청 본문이 존재한다면
      • 💡
        본문은 대부분 GET 요청일 때는 비어있고, POST, PUT 또는 PATCH와 같이 리소스를 조작하는 경우 생성하거나 업데이트할 데이터를 포함한다.
     
    웹 서버는 요청을 이해 가능한 수준의 분량을 확보할 때까지 데이터를 읽는다.
    그래서 확보된 메시지 일부분을 메모리에 임시로 저장할 필요가 있다.
    📌
    요청 메시지를 파싱할 때, 웹 서버는 입력 데이터를 네트워크로부터 불규칙적으로 받으며
    또한, 네트워크 커넥션은 언제라도 무효화될 수 있다.
     

    3. 요청 처리

    서버는 요청으로부터 메서드, 리소스, 헤더, 본문(없는 경우도 있음)을 얻어 처리한다.
     

    4. 리소스의 매핑과 접근

    웹 서버 = 리소스 서버기도 하다.
    • 정적 컨텐츠 제공 : HTML 문서나 이미지 같은 미리 만들어진 컨텐츠 제공
      • 로고 이미지, 정적 HTML 파일
    • 동적 컨텐츠 제공 : 웹 애플리케이션 서버(WAS)를 통해 동적 컨텐츠를 만들어서 제공
      • 특정 사용자의 은행 잔고, 쇼핑몰 장바구니
     

    5. 응답 만들기

    리소스를 클라이언트에 전송하기 위해 응답 메시지를 만든다.
    응답 메시지는 응답 상태 코드, 응답 헤더, 응답 본문을 포함한다.
    • 클라이언트에게 요청 상태를 알려주는 상태 라인
    • 브라우저에 응답 처리 방법을 알려주는 응답 헤더
    • 해당 경로에서 요청된 리소스(HTML, CSS, Javascript, 이미지 파일과 같은 콘텐츠 또는 데이터)
    HTTP/1.1 200 OK Date: Tue, 25 May 2021 19:40:59 GMT Server: Apache X-Frame-Options: SAMEORIGIN X-Powered-By: Express Cache-Control: max-age=0, no-cache Content-Type: text/html; charset=utf-8 Vary: Accept-Encoding X-Mod-Pagespeed: 1.13.35.2-0 Content-Encoding: br Keep-Alive: timeout=1, max=100 Connection: Keep-Alive Transfer-Encoding: chunked <!DOCTYPE html> <html lang="ko"> <head> 나머지 HTML 항목
     

    6. 응답 보내기

    커넥션

    커넥션 부분 내용 추가하기
     
     
    • 비지속적 커넥션 : 서버는 데이터 전송 후, 커넥션 닫음
    • 지속적 커넥션 : 데이터 전송 후 커넥션 유지
     

    7. 로깅

    마지막으로 트랜잭션 완료 후, 웹 서버는 트랜젝션에 대한 로그를 로그 파일에 기록한다.
     

    정리

    웹 브라우저에서 URL을 입력했을 때, 일어나는 일들을 간단히 나열하면,
    1. 웹 브라우저에 URL을 입력하고 Enter 키를 누릅니다.
    1. 웹 브라우저가 도메인의 IP 주소를 조회합니다. (먼저 캐시를 찾고, 그다음 DNS를 검색합니다.)
    1. 웹 브라우저가 찾은 IP 주소를 기반으로 서버와의 TCP 연결을 시작합니다.
    1. 웹 브라우저가 HTTP 요청을 서버로 전송합니다. (필요한 경우, HTTPS 보안 통신이 진행됩니다.)
    1. 웹 서버가 요청을 처리하고 응답을 다시 웹 브라우저로 전송합니다.
    1. 웹 브라우저가 전송 받은 콘텐츠를 렌더링합니다.
     

    참고 자료

    웹 브라우저에 URL을 입력하면 어떤 일이 생기나요? | Amazon Web Services
    여러분은 매일 웹 브라우저를 열고 소셜 미디어, 뉴스, 전자 상거래 사이트 등 즐겨 찾는 웹 사이트를 탐색합니다. 주소창에 URL을 입력하거나 페이지 링크를 클릭하면 해당 페이지로 이동합니다. 그런데, 그 뒷단에서 무슨 일이 일어나는지 생각해 본 적이 있나요? 이 글에서는 웹 브라우저에 URL을 입력하고 Enter 키를 누르면 어떻게 되는지 살펴보겠습니다.
    웹 브라우저에 URL을 입력하면 어떤 일이 생기나요? | Amazon Web Services
    https://aws.amazon.com/ko/blogs/korea/what-happens-when-you-type-a-url-into-your-browser/
    웹 브라우저에 URL을 입력하면 어떤 일이 생기나요? | Amazon Web Services
    웹 브라우저에 URL을 입력하고 사용자에게 보여주기까지 과정
    웹 브라우저에 URL을 입력하면 어떤 일이 생기는가? (SW 엔지니어 인터뷰에서 나오는 단골 질문으로 웹 브라우저, PC의 운영 체제, 인터넷 서비스 제공업체, 웹 사이트를 호스팅하는 서버, 해당 서버에서 실행되는 서비스에 대한 지식 등이 필요, 실제 문제가 발생할 수 있는 위치와 성능 문제를 찾을 수 있는 위치를 파악해야 한다.)
    https://sunrise-min.tistory.com/entry/%EC%9B%B9-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EC%97%90-URL%EC%9D%84-%EC%9E%85%EB%A0%A5%ED%95%98%EA%B3%A0-%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%EA%B2%8C-%EB%B3%B4%EC%97%AC%EC%A3%BC%EA%B8%B0%EA%B9%8C%EC%A7%80-%EA%B3%BC%EC%A0%95
    웹 브라우저에 URL을 입력하고 사용자에게 보여주기까지 과정