[생활코딩] Server/HTTP

HTTP 2. 소개

Ben의 프로그램 2023. 6. 27. 19:47
728x90

  • HTTP 가 무엇인지 비유적인 설명을 먼저 듣고 넘어가겠습니다. 

  • 왼쪽이 client 오른쪽이 server 라고 해봅시다. 
    client 는 Server 에게 HTML 이라는 물건을 달라고 요청합니다. 
    바로 이것이 요청 request 입니다. 
    그리고 이것에 대해서 server 가 물건을 주는 것이 응답 response 인 것이죠. 

  • HTTP 는 request 와 response 를 나타냅니다. 
  • HTTP 라는 것은 HTML, CSS, Javascript, Image 가 서로가 주고받는 콘텐츠라면, 이런 콘텐츠를 서로가 주고 받기 위해서는 서버와 클라이언트가 서로가 알아들을 수 있는 공통의 '메시지'가 필요한데, 바로 그 메시지를 HTTP 라고 하고 HTTP 는 크게 Request 와 Response 를 위한 메시지로 구분되어 있다라는 것입니다. 
  • 그런데 너무 추상적으로 느껴지시죠. 맞습니다. 실제로 HTTP 는 추상적인 것입니다. 그런데 자꾸 얘기하고 접하고 보다보면 실제로 내 눈앞에 있는 것처럼 느껴지게 됩니다. 그래서 제가 여러분에게 소개드릴 방법이 하나 있습니다. 

  • 각자가 사용하는 웹 브라우저에서 개발자 도구를 열면 Network 탭이 있습니다. 이 Network 탭은 클라이언트와 서버가 서로 주고받는 메시지들입니다. 

  • HTML 을 잠깐 보겠습니다. img 태그의 src 속성 값으로 주어진 내용이 있는데요. 이걸 웹 브라우저가 보는 순간 웹 브라우저는 바로 해당 정보를 찾아서 통신을 했던 것이죠. 
  • 복잡한 웹 페이지에 들어가시면 수많은 통신들을 하고 있는 것을 알 수 있습니다. 

  • 실제로 통신한 내역들을 보겠습니다. 
  • html 을 클릭해보면 Request Headers 라는 것이 보입니다. 이 Request Headers 가 실제로 웹 브라우저가 웹 서버에게 요청한 데이터입니다. 

  • raw(사파리에서는 view source) 를 클릭하면 위와 같이 실제로 웹 브라우저가 서버에 보낸 요청 날것의 정보를 볼 수 있습니다. 웹 브라우저는 이렇게 텍스트로 만들어서 웹 서버에게 보내고 있었다는 것입니다. 
  • Get 은 아직 몰라도 괜찮고요. 1.html 을 요청하면서 HTTP 1.1 을 사용하고 있다는 것을 명시하고 있는 것을 알 수 있습니다. 

    그리고 Host 가 이어지고 있습니다. 

  • 위에 있는 Response Headers 를 살펴볼까요? 
  • Response Headers 에는 웹 서버가 응답하는 방식을 의미하는 첫 줄이 무조건 명시되어 있습니다. 
    나도 HTTP 1.1 로 통신할거야라는 의미를 가진 문장이 있는 것을 확인할 수 있습니다. 
    200 이라는 것은 성공적으로 데이터를 찾아서 너에게 보내주었다는 것을 의미합니다. 

    다른 것들이 무엇을 의미하는지 지금 이해할 수 있는 것들만 우선적으로 볼까요? content-length 는 컨텐츠의 길이를 의미하고 Content-Type 은 이 정보가 텍스트이고, 텍스트 중에 html 이다라는 것을 알려주고 있습니다. 
  • 웹 브라우저는 이런 정보들을 서버로부터 받아서 처리한 후 화면에 표시하여 우리가 볼 수 있게 해줍니다. 

    즉 웹 브라우저는 사용자가 요청한 정보를 웹 서버에게 대신 물어봐주는 역할을 수행하고 있었던 것입니다. 

    다른 말로 하자면 Request Header 를 보내서 Response Header 를 받고 받은 정보를 해석하여 화면을 출력하고 있었다는 것이죠. 
  • 웹 서버는 자기가 요청받은 정보에 대한 정보를 Request Header 로 만들어서 웹 브라우저에게 전달해주는 기계라고 할 수 있습니다. 
  • 이것이 여러분이 HTTP 에 대해서 이해해야할 가장 중요한 정보였습니다. 이번 시간은 여기까지 입니다. 

 

 

 

출처 : 생활코딩 https://opentutorials.org/course/4848

 

 

'[생활코딩] Server > HTTP' 카테고리의 다른 글

HTTP 5. 수업을 마치며  (0) 2023.06.27
HTTP 4. Response message  (0) 2023.06.27
HTTP 3. Request Message  (0) 2023.06.27
HTTP 1. 수업소개  (0) 2023.06.27