DB개발자
30
2020-11-26 19:53:32 작성 2020-11-30 09:16:30 수정됨
5
221

크롬에서 img src로 이미지 호출시 에러


개발팀에서 근무하고 있는 개발자 입니다.


기존에 정상적으로 동작하다가 크롬 브라우저에서만 이미지가 불러와지지 않는 현상이 발생해서 문의 드립니다.


  <img src ="http://A/image/back_450.gif" />

같은 내역폭을 사용하는 A서버(이미지저장서버) B서버( 이미지 파일 호출용 웹서버) C( 웹서비스 전용 웹서버)

A서버에서 이미지를 저장해 놓고 B서버에 A서버의 이미지를 호출하는 jsp가 있고 C서버에서 B서버의 JSP를 호출하여 A서버에 있는 이미지 파일을 불러오려고하는데 호출하면 IE에서는 정상적으로 이미지가 보이는데 크롬에서는 ERR_CONNECTION_TIMED 에러가 발생합니다.

B서버에 있는 jsp파일을 C서버로 옮겨서 C서버에서 호출하면 또 정상적으로 호출이 됩니다.. 

단지 차이는 B서버는 ssl이 적용되어있고 C 서버는 ssl이 적용데어 있지 않습니다 파일이 있는 A서버도 ssl이 적용되어 있지 않고요


B서버에 있는 호출용 jsp을 서버 C로 옮기면 정상적인것으로 봐서는 이미지파일이 다른서버에 있더라도 문제가 없다는 의미인데 SSL 적용만으로 크롬에서 이런 현상이 발생된다는게 이해가 잘안되네요.. IE에서는 두 상황 모두 정상적으로 이미지가 띄워집니다


원인이 뭘까요.. 선배님들의 조언 부탁드립니다

0
  • 답변 5

  • 팩트폭행범
    2k
    2020-11-26 20:46:45

    방화벽 포트 열어달라고하세요

  • DB개발자
    30
    2020-11-26 21:00:40

    방화벽문제면 IE 도 동일해야하는데 방화벽문제는 아닌거같습니다..

  • 준호
    412
    2020-11-26 21:37:59
  • RWB
    408
    2020-11-26 21:52:01

    IE는 어떤지 모르겠는데, 크로뮴 기반 브라우저의 경우 보안정책 중 하나로 HTTP와 HTTPS 간 자원 사용을 막는 정책이 있습니다.

    혼합 컨텐츠 차단 정책. 즉 HTTPS에서 HTTP의 이미지, 오디오 같은 소스를 사용할 수 없도록 막는 정책입니다.


    의심되는 상황은 이렇습니다.

    현재 구조는 HTTP -> HTTPS -> HTTP로 되어있죠.


    1. B(HTTPS)가 A(HTTP)의 이미지를 호출한다.

    2. 이 과정에서 혼합 컨텐츠 차단 정책으로 인해 B가 이미지를 제대로 불러오지 못 하고 오류를 출력한다.

    3. C(HTTP)는 B(HTTPS)를 호출한다.

    4. B는 2번 이슈로 정상적으로 로딩이 되지 않았으나, C는 단순히 로딩이 안 된 현상만 확인될 뿐, 어떤 현상인지 알 수 없어 하염없이 기다리다 ERR_CONNECTION_TIMED를 내뱉는다.

    5. B의 JSP를 C에 임포트하면 HTTP -> HTTP로 정책을 위반하지 않아 정상적으로 출력된다.


    위 상황이라 생각합니다만.. 단계별로 디버깅해보지 않아 확실하진 않습니다.

    A에서 B, B와 C의 호출/응답에 문제가 없는지 단계별로 체크해보셔야 할 것 같습니다.

  • DB개발자
    30
    2020-11-30 09:16:11
    그렇군요 덕분에 많은 도움이 됬습니다. 감사합니다!
  • 로그인을 하시면 답변 을 등록할 수 있습니다.