HTTP 1.1 과 HTTP 1.0의 keep-alive 관련 테스트


  • 테스트 환경
    • 윈도우 7에서 APM설치, 아파치만 실행후
      cmd창에서 명령 실행
      (참고 : 윈도우7은 telnet을 따로 설치해줘야함)

telnet localhost 80
GET / HTTP/1.1
Host: localhost
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4

->
HTTP/1.1 200 OK
Date: Wed, 08 Oct 2014 02:28:21 GMT
Server: Apache
Content-Length: 3211
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=UTF-8

[내용 생략]

telnet localhost 80
GET / HTTP/1.0
Host: localhost
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4

->
HTTP/1.1 200 OK
Date: Wed, 08 Oct 2014 02:28:56 GMT
Server: Apache
Content-Length: 3211
Connection: close
Content-Type: text/html;charset=UTF-8

[내용 생략]

  • HTTP 1.1
    • KeepAlive 기능이 있음
      • 뭐하는 기능인가? connection less인 http의 커넥션 오버해드를 줄이고자 커넥션을 일정기간 유지해서 재활용하느는 기능.
        응답해더에서
        Keep-Alive: timeout=5, max=100
        Connection: Keep-Alive
        처럼 표시되면 동작중이며 5초간 유지, 100번 사용 가능 이라는 뜻
      • telnet으로 테스트하면 내용출력 하고 잠시후에 끊어진다.
        (조금 후 '호스트에 대한 연결을 잃었습니다.' 라고 나올것이다. 정확하게 5초를 기다리지는 않는것 같다.)

  • HTTP 1.0
    • KeepAlive 기능이 없으므로 바로 연결이 끊어진다.
      • Connection: close 라고 표시된다
    • telnet으로 테스트하면 내용출력 하고 바로 커넥션이 끊어진다.
      (바로 '호스트에 대한 연결을 잃었습니다.' 라고 나올것이다.)
  • 주의
    • KeepAlive 설정은 서버의 설정에 따라서 다를 수 있다.
    • 대량의 접속이 있는 곳에서는 KeepAlive를 Off 해서 사용하는 경우가 많다.
  • 첨고
    • 호스트에 대한 연결을 잃었습니다.
      Connection closed by foreign host. (영문 리눅스 응답)
      • 서버에서 클라이언트의 접속을 끊었다는 뜻이다.
    • HTTP 1.0으로 요청 하더라도 
      Connection: keep-alive
      를 요청해더에 넣고 요청하면 KeepAlive가 동작하도록 요청된다.
      HTTP의 버전 표시는 껍데기 뿐인것 같다.
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
3.31
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.18
4.19
4.20
4.21
4.22
4.23
4.24
4.25
4.26
4.27
4.28
4.29
4.30
5.1
5.2
5.3
5.4