이제 브라우저가 보내는 요청에 대해 이해를 했으니 서버가 보내는 응답을 확인해 보겠습니다.

 

피들러 화면에서 하단의 맨 오른쪽 탭중 Raw 라고 적힌 버튼을 클릭하면 서버가 보낸 헤더를 그대로 볼 수가 있습니다.

 

 

이제 응답에서 중요한 부분에 대해서 알아 보겠습니다. 

 

상태 라인

HTTP 요청과 마찬가지로 응답에서도 첫 번째 줄이 가장 중요하며 이것을 HTTP 상태 라인(Status Line) 이라고 합니다. 응답의 상태 라인도 매우 간단하며 다음과 같은 구조로 이루어져 있습니다.

버전은 응답과 마찬가지로 사용하는 프로토콜의 버전을 의미합니다.

가장 중요한 부분은 상태 코드로 클라이언트가 요청한 결과가 어떻게 처리되었는지 나타냅니다. 200 은 요청이 성공해서 정상적인 응답이 돌아왔음을 나타냅니다.

여기에서는 302 라는 응답이 왔는데 이것은 컨텐츠가 다른 곳에 있으니 그리로 가라는 의미입니다. 응답 구문은 상태 코드와 동일하지만 사람이 보고 알수 있도록 문자열로 되어 있습니다.

HTTP 표준에는 많은 상태 코드가 있지만 일반적으로 많이 볼 수 있는 상태 코드는 다음 표와 같으며 이 정도만 알아도 HTTP 관련 문제에 부딪혔을 때 해결하는데 많은 도움이 될 것입니다.

 

메시지 헤더

상태 라인에 이어서 나오는 것은 메시지 헤더(그림중 2번)이며 두번째 줄부터 빈 줄까지 계속됩니다. 서버의 HTTP 응답 메시지 헤더의 종료는 두 개의 빈줄로 표시하며 주요 헤더는 다음과 같습니다.

 

Cache-Control

브라우저가 이 페이지를 캐쉬로 처리할 때 참고하라는 의미이며 no-cache 로 지정할 경우 캐시하지 말라는 의미입니다. no-cache 는 로그인 페이지나 관리자 페이지등 중요한 페이지일 경우 설정합니다.

 

Content-Type

서버가 보내는 컨텐츠의 형식을 표시하는 헤더로 정확히 설정되어야 브라우저가 컨텐츠 종류에 따라 적절하게 처리할 수 있습니다. 또 중요한 부분은 ; charset=UTF-8 이며 컨텐츠의 인코딩이 어떻게 되어 있는지를 지정합니다. 인코딩 항목이 제대로 되어 있지 않으면 브라우저 화면에서 한글이나 한자같은 비영어권 문자가  깨져 보일수 있습니다.


Location

서버의 응답이 컨텐츠가 다른 곳에 있다는 의미인 302 이므로 Location 헤더를 통해 가야할  URL 을 지정합니다. 301, 302 일 경우에만 볼 수 있는 헤더입니다.

 

Server

사용하는 웹 서버 소프트웨어의 종류와 버전을 표시합니다.

 

메시지 본문

마지막은 메시지 본문으로 이 경우 HTML 파일의 내용이 그대로 들어가 있으며 텍스트이므로 우리가 직접 읽을 수 있습니다. PNG 나 GIF 같은 이미지 파일이나 동영상 파일들은 바이너리 형식이므로 피들러에서는 제대로 표시되지 않고 알수 없는 문자열로 보이게 됩니다.