1. HTTP의 동작 분석 실습(1)

⦁ configuration 파일(.conf)을 수정하여 web server의 설정을 변경

 KeepAliveTimeout 30 // persistent connection을 30초간 유지

 

- client가 web server에게 연결을 요청 한 후 30초가 흘러 TCP연결이 종료가 되고 난 뒤 새로운 연결을 요청하였을 때 수집되는 패킷이 있다.

- 먼저 client가 web server에 연결을 요청 하면 TCP연결 과정을 통해 TCP가 연결이 되고 web server에 대한 요청을 한다. 그럼 server는 해당 request에 대한 response를 client에게 해줌 으로써 web server에 연결이 되고 web browser에 화면을 띄울수 있다. 그 후 아무 동작을 하지 않고 KeepAliveTime인 30초 후에 TCP연결 해제 과정을 통해 TCP의 연결이 종료가 된다. 그 후 새롭게 연결을 요청을 하면 web server의 설정이 변경이 되지 않아 변경이 된게 없기 때문에 Not Modified가 server에서 온 것을 알 수 있다.

 

2. HTTP의 동작 분석 실습 (2)

 

⦁ configuration 파일의 ExpiresActive와 ExpiresDefault를 다음과 같도록 함

ExpiresActive On, ExpiresDefault “access plus 0 seconds”

 

- web server에 대한 만료 기간을 0초로 해놓았을 때 수집되는 패킷들이다. client가 web server에게 접속요청을 하면 TCP연결부터 data받아오는 것 까지 처음 접속하는 것처럼 패킷이 수집이 된다. 이 상태에서 KeepAliveTime에 끝나서 TCP연결이 끝난 후 새로고침을 하면 4번 패킷 수집 그림처럼 Not Modified가 올 것이다. 하지만 web browser를 종료 하고 난 후 다시 web server에게 접속을 하면 위와 같이 패킷이 수집이 될 것이다. 이 이유는 web server의 말료 시간을 0초로 해놓았기 때문이다.

 

4. 연습문제 풀이

 

[1] HTTP는   _____  위주의 프로토콜이다.

 

a) 문자      b) 비트

 

→ HTTP는 Hyper Text Transfer Protocol의 약자로 문자위주의 프로토콜이다.

 

[2] HTTP의 헤더와 본문을 구분하는 것은 _____이다.

 

a) EOL                 b) blank line     c) 헤더 길이 정보       d) 패킷 전체  

 

→ blank line은 CR(=0D)과 LF(=0A)로 구성되어 있는데 라인을 CR은 한 줄 밑으로 내려가라는 명령어이며 LF는 그 줄 맨 앞으로 가라는 명령어이다. CR과 LF는 line의 끝에 항상 존재한다.

 

[3] HTTP의 응답 메시지의 시작은     _______  이다

 

a) Method              b) HTTP-Version       c) Status-Code         d) 요청 URI   

 

→ HTTP의 응답 메시지의 시작은 HTTP-Version으로 시작한다.

 

[4] HTTP의 요청 메시지의 시작은       이다.

 

a) Method              b) HTTP-Version        c) Status-Code         d) 요청 URI   

 

→ HTTP의 요청 메시지의 시작은 Method로 시작한다.

 

[5] 사용자가 특정 URL에 파일을 생성할 때 사용하는 HTTP 메소드는  _____ 이다.

a) GET                 b) POST             c) PUT                 d) DELETE

 

→ 사용자가 특정 URL에 파일을 생성할 때 사용하는 HTTP 메소드는 PUT 이다, GET은 자원을 받고자 할 때 사용하며, POST는 web browser의 요청 메시지 안의 데이터를 server에게 송신 할 때 사용 되고, DELETE는 browser가 server의 특정 폴더에 있는 파일을 삭제할 때 사용된다.

 

[6] HTTP에서 프록시나 캐시서버를 경유하였음을 표시하는 것은      이다.

a) GET                 b) Via             c) Cache-Control       d) Pragma

  HTTP에서 프록시나 캐시서버를 경유하였음을 표시하는 것은 Via이다.

 

[7] 웹 서버의 기능을 대행하는 기능을 수행하는 웹 장비가 아닌 것은?

a) 프록시 서버          b) 캐시 서버       c) 라우터               d) 프록시 캐시서버

 

→ 웹 서버의 기능을 대행하는 기능을 수행하는 웹 장비가 아닌 것은 라우터 이다. 라우터는 네트워크의 중계역활을 한다.

 

[8] HTTP 연결이 지속되도록 요청하는 구문은       이다.

 

a) Connection : Close        b) Connection : Keep-Alive 

c) Expires                   d) Retry-After

 

→ HTTP 연결이 지속되도록 요청하는 구문은 Connection : Keep-Alive이다. Keepalive는 TCP연결이 지속되는 시간을 말하며 이것은 곧 HTTP 연결이 지속되는 시간을 말한다.

 

[9] 캐시 서버가 저장한 페이지의 유효 보관기간은       에서       를 뺀 시간이다.

 

a) Expires            b) Date       c) max-age           d) IF-Modified-Since

 

→ 캐시 서버의 유효기간은 web server의 만료기간에서 Data를 뺀 시간으로 캐시서버의 memory의 여유가 없을 경우 만료기간이 짧은 것부터 삭제를 하며 memory의 여유가 있을 경우 만료기간이 짧은 것 또는 만료기간이 끝난 web server의 data도 저장하고 있는다.

 

[10] 캐시된 내용에 대하여 요청하는 HTTP 메시지에는       이 포함된다.

 

a) From               b) If-Modified-Since         c) Referer             d) Date

 

→ client가 캐시서버에게 저장되어 있는 web server에게 접속을 요청 시 캐시 서버가 가지고 있는 web server에 대한 정보가 현재 web server의 정보와 같은지 다른지 확인을 한 후 변경 되었으면 변경된 web server의 data를 받아와야하기 때문에 modified message를 포함시킨다.

+ Recent posts