2017-10-20 7 views
0

동일한 페이지에서 여러 SSL/TLS 핸드 셰이크가 발생하는 이유를 확인하는 데 몇 가지 어려움이 있습니다 (예 : 여러 HTTP 요청), 웹 사이트/서버에서 Keep-Alive 및 세션 식별자/티켓이 모두 활성화되어있는 경우.Keep-Alive 및 세션 식별자/티켓을 사용할 수 있음에도 불구하고 여러 SSL/TLS 핸드 셰이크가 발생했습니다.

나는 최근에 내 웹 사이트에서 TLS (https)를 활성화했기 때문에 이것이 사이트의 속도 /로드 성능에 어떤 영향을 주 었는지 확인하고 싶었습니다. 인터넷 (예 : tools.pingdom.com 및 webpagetest.org) 및 Chrome 개발자 도구에서 다양한 속도 테스트를 통해 폭포수 다이어그램을 살펴볼 때 여러 페이지에서 다른 콘텐츠로 여러 SSL 핸드 셰이크/협상을 볼 수 있습니다. 당신이 여기의 이미지를 볼 수 있습니다

enter image description here

에서 볼 수있는 바와 같이 , 같은 domaian 내에서 서로 다른 HTTP 요청에 여러 개의 SSL 협상이 있습니다. Keep-Alive와 Session 식별자 모두 & - tickets이 활성화되어 있습니다 (webpagetest.org 및 ssllabs.com/ssltest/의 여러 테스트를 통해 확인 됨). 또한 공유 호스트에있는 서버 (아파치) 구성에 액세스 할 수 없다는 점에 유의하십시오.

  • 때문에 연결의 일부 금액을 제한 서버 구성 :

    내가 아마도 겪고있어 무엇인가?

  • 일부 구성이 잘못 되었습니까?
  • 완전히 다른 것?
  • 저를 오해 한 부분이 있습니까?

이 분야의 신참자이지만이 주제와 관련하여 많은 정보를 찾으려고했지만 슬프게도 대답이 아닙니다.

경우 당신은 자신을 위해 뭔가를 테스트 할 것, 웹 사이트는 https://www.aktie-skat.dk

답변

2

브라우저가 각 연결 요청 만 할 수 있기 때문에 동일한 사이트에 여러 개의 병렬 연결을 설정하고에 하나의 리소스를로드하는 것이 정상입니다 시간. HTTP keep-alive를 사용하는 경우에도 이러한 리소스는 단일 HTTP/1.x 연결을 통해 병렬로로드되는 것이 아니라 하나씩 차례로로드됩니다. 이것은 HTTP/2에서만 다릅니다. 그 외에도 일부 요청은 클라이언트가 다음 요청에 대해 다른 연결을 사용해야하는 서버의 Connection: close이 될 수 있습니다.

세부 사항 : 처음 두 핸드 쉐이크는 0.362 초와 0.333 초에서 시작하여 각각 약 100ms가 소요됩니다. 이들은 완전한 악수입니다. 다른 모든 TLS 핸드 셰이크는 길이가 짧으며 (약 50ms) 세션 다시 시작을 사용하여 축약 된 핸드 셰이크입니다. 첫 번째 연결에 대한 TLS 핸드 셰이크가 아직 수행되지 않았으므로 두 번째 TCP/TLS 연결에서 세션 다시 시작을 사용할 수 없어 다시 시작할 수있는 세션이 없었습니다.

+0

우수 설명 Steffen - 훨씬 더 잘 이해할 수있는 세부 부분 특히! 그러나 요청 중 일부가 TLS 핸드 셰이크를 전혀 수행 할 필요가없는 이유에 대한 아이디어가 있습니까? 예를 들어 요청이 "test4.jpg"에 대한 요청이 0.57 초부터 시작되는 것과 같습니다. 새 요청을 처리하기 위해 계속 이동하는 "Kept-Alive"의 기존/영구 연결 때문입니까? –

+1

@ Chri.s : "초기 연결"(즉, 새 TCP 핸드 셰이크 없음)이없는 모든 요청에는 "SSL 협상"이 없습니다 (즉, TLS 핸드 셰이크 없음). 이는 동일한 TCP/TLS 연결 내부의 후속 요청, 즉 HTTP 연결 유지를 사용하는 요청입니다. –

+0

당신은 나의 영웅입니다. 이걸 이해해 주셔서 감사합니다 :) –