[생활코딩] Server/HTTP

HTTP 4. Response message

Ben의 프로그램 2023. 6. 27. 20:26
728x90

  • 이번 시간에는 지난 시간에 Request message 에 대해서 살펴보았다면 이번 시간에는 Response message 에 대해서 살펴보겠습니다. 
  • 구글에 HTTP Response Header Format 이라고 검색하니까 위와 같은 그림이 하나 나옵니다. 
  • Status 는 상태라는 것이구요. 서버가 응답했을 때 잘 수행되었는지 여부에 대해 알려줍니다. 
    HTTP version 한칸 띄고 Status code 라는 것은 응답 결과에 대한 내용이고 한칸 띄고 phrase 는 응답 결과 코드를 사람이 이해하기 쉽도록 풀어서 쓴 것을 의미합니다. 

    그림의 아래에 있는 내용들이 응답 코드들에 대한 내용입니다. 

  • 실제로 코드를 살펴보겠습니다. 

    HTTP 1.1 을 사용하고 있다는 것을 확인할 수 있습니다. 

    그 다음은 status code 가 출력됩니다. 한번 내용을 살펴볼까요? 
    마찬가지로 구글에 검색을 하면 아주 상세하게 내용을 확인할 수 있습니다.

  • 100 번대는 정보를 주기 위함을 의미하는데 자주 사용되지는 않습니다. 
  • 200 번대는 성공을 의미합니다. 아주 긍정적인 것을 의미합니다. 
    가장 중요한 번호는 200 번으로 OK 로 성공했다는 것을 의미합니다. 

  • 300 번대는 Redirection 으로 300 번대의 Response message 를 받게 되면 웹 브라우저는 즉시 지정된 웹 사이트로 이동하게 됩니다. 

    현재 우리 상태에서는 이것을 시연하기는 어렵기 때문에 나중에 여러분들이 서버쪽 애플리케이션들 PHP나 node.js python jango 등을 배우면 자연스럽게 이런 것들이 나오게 되어있습니다. 

  • 400 번대는 클라이언트의 오류입니다. 

    가장 유명한 것이 404 Not Found 입니다. 

    이 오류는 클라이언트가 요청한 자료가 서버에 없는 것을 의미하며 사용자에게 '너 왜 서버에 없는 것을 요청하느냐'라고 알려주는 것이죠. 

    403 Forbidden 도 자주 발생합니다.

    이 오류는 권한이 없는 자료에 접근 시도를 한 경우에 발생하는 오류입니다. 

  • 500 번 대는 서버에 오류가 있는 경우에 발생합니다. 

    가장 유명한 것이 500 번으로 Internal Server Error 로 서버 내부에 오류가 발생하여 지금 서비스 할 수 없습니다를 의미합니다. 

  • 이렇게 해서 우리가 Status 의 첫 줄을 이해하게 되었습니다. 
    다음에 나오는 것을 보니까 Header field name 이라는 것이 있네요. 한번 살펴봅시다. 

  • 여기 있는 내용은 Request message 와 겹치는 것이 많은 것을 알 수 있습니다. 

  • 아무튼 우리가 웹 브라우저와 웹 서버가 통신하는 것을 살펴보면 다음과 같습니다. 

    우선 웹 브라우저는 Request Headers 를 작성한 다음에 빈 공백 줄을 만든 다음 보내야할 내용들을 담을 겁니다. 그 이후 인터넷을 통해서 웹 서버에게 보내주면 웹 서버는 여기있는 내용들을 해석을 해서 보내주게 됩니다. 

    응답 메시지는 Reponse Headers 에서 살펴볼 수 있었죠. 
    Response Header 를 작성한 다음에 빈 공백 줄을 하나 주고 그 다음에 요청한 자료에 해당하는 html 을 담아서 보내주게 됩니다. 

    웹 브라우저는 이렇게 받은 정보를 토대로 해석을 한 이후에 사용자의 화면에 표시해주게 되면 이 작업이 끝나게 되는 것입니다. 이것만 여러분이 이해하셨으면 됩니다. 그리고 이후에 나머지는 검색을 통해서 알아내면 됩니다. 

    이렇게 해서 응답에 대한 부분, 어떻게 데이터를 주고받는지에 대한 부분들에 대해서 이야기해보았습니다.

 

 

 

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

 

 

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

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