• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

API URI

24.04.25 15:01 작성 조회수 68

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
제가 이해한 과정이 맞는 지 알려 주셨으면 좋겠습니다..

  1. 웹 브라우저에서 웹 서버로 https://www.google.com:443/search?q=hello&hl=ko 이런 식으로 요청하면 DNS 서버에서 google.com -> 200.200.200.2(IP 주소)를 알아내고 443(PORT) 라는 정보를 알아 낸다.

  2. 웹 브라우저가 HTTP 메시지를 생성한다.

     

    ex) GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com)

    • 여기서 궁금한 것이 /search 자체는 리소스인데 이 리소스를 URI(URL)에 매핑 했기 때문에 Resource Path로서 사용할 수 있게 된 것인 가요?

  3. 소켓 라이브러리를 통해서 전달 한다. * 이 때 알아낸 PORT와 IP주소로 TCP/IP 연결을 할 수 있게 하고 OS 계층에 데이터를 전달 한다.

  4. 전달 받은 데이터를 포함한 TCP/IP 패킷을 만들어서 웹 서버로 전송 한다.

  5. 웹 서버는 해당 패킷을 받아서 메시지 바디에 요청한 데이터를 포함하여 메시지 응답 패킷을 클라이언트(웹 브라우저)에게 전송한다


    ex)

    HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423 ...

  6. 웹 브라우저는 응답 메시지를 렌더링 해서 웹 페이지를 띄운다. 제가 이해한 바가 맞나요?

     

     

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.25

안녕하세요, 인프런 AI 인턴입니다.

간다간다뿅간다님의 질문에 대해 웹 브라우저에서 웹 서버로 요청을 보내고 응답을 받아 처리하는 전체적인 과정에 대한 이해를 확인하고자 하시는 것으로 보입니다. 간다간다뿅간다님께서 언급하신 과정은 대체로 올바르게 이해하고 계신 부분이 많으십니다.

  1. 웹 브라우저가 DNS 서버에 도메인 이름을 조회하여 IP 주소와 포트 번호를 알아내는 과정,
  2. HTTP 메시지의 생성 및 전송,
  3. 소켓 라이브러리를 사용하여 서버와 TCP/IP 연결을 준비하고 데이터 전송,
  4. 서버에서 요청 처리 후 응답 메시지 작성 및 전송,
  5. 클라이언트(웹 브라우저)에서 응답 메시지를 해석하여 웹 페이지 렌더링,

등의 과정에 대해 잘 설명해 주셨습니다.

말씀해주신 “/search”가 Resource Path로서 URI(URL)에 매핑되어 사용될 수 있는 부분과 관련하여, /search?q=hello&hl=ko는 실제로 서버가 처리할 리소스인 /search와 이 리소스에 전달되는 파라미터 q=hello&hl=ko를 포함하는 URI입니다. 이 URI는 웹 서버가 특정 요청을 식별하고 처리하기 위해 사용되는데요, URI의 구조와 패턴을 설계하는 것은 웹 개발 과정에서 매우 중요한 부분 중 하나입니다.

이러한 과정에 대해 더 자세히 설명하는 자료로, “웹 브라우저 요청 흐름에 대한 질문입니다“와 “웹브라우저 요청흐름 질문입니다“를 통해서 확인할 수 있습니다. 여기서는 웹 브라우저가 요청을 시작하는 순간부터 서버와의 연결 과정, HTTP 메시지의 전송, 응답 수신 및 처리에 이르기까지의 과정을 상세히 다루고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

search = Resource

/search = URI(URL) <- 리소스를 URI에 매핑

?q=hello&hl=ko = 웹 서버 https://www.google.com:443/search?q=hello&hl=ko 에 전달되는 (스트링)파라미터 즉, 리소스에 전달되는 파라미터 이것이 맞나요? 아니라면 설명 부탁드려요..