JSONP

정은경·2022년 6월 17일
0

👸 Front-End Queen

목록 보기
212/281
  • JSONP(JSON with Padding) 는 웹 브라우저의 동일 출처 정책(Same-Origin Policy) 을 우회하여 다른 도메인에서 데이터를 요청할 때 사용되는 기술
  • 주로 CORS(Cross-Origin Resource Sharing)가 도입되기 이전에 활용되었음

JSONP 작동 방식

  1. <script> 태그 사용

    • 브라우저는 <script> 태그를 통해 외부 도메인의 JavaScript 파일을 자유롭게 가져올 수 있습니다.
    • JSONP는 이 점을 활용하여 서버에서 데이터를 JavaScript 함수 형태로 반환합니다.
  2. 콜백 함수 지정

    • 클라이언트는 요청 시 호출할 콜백 함수 이름을 전달합니다.
    • 서버는 데이터를 JSON 형식으로 반환하는 대신 지정된 콜백 함수로 감싸 반환합니다.
  3. 응답 예시

    // 클라이언트 요청
    <script src="https://example.com/data?callback=myCallback"></script>
    
    // 서버 응답
    myCallback({
        "name": "Alice",
        "age": 30
    });
  4. 브라우저 처리

    • 서버가 반환한 스크립트를 브라우저가 실행하며, 데이터는 myCallback 함수에 전달됩니다.

JSONP의 한계

  • 보안 문제: 임의의 JavaScript 코드가 실행되므로 보안 취약점이 발생할 가능성이 있습니다.
  • HTTP GET 방식만 지원: POST와 같은 다른 HTTP 메서드를 사용할 수 없습니다.
  • 데이터 크기 제한: URL의 길이에 따라 요청 데이터 크기가 제한됩니다.

대안

JSONP는 CORS가 널리 사용되면서 점차 대체되었습니다. 현재는 보안과 유연성 면에서 CORS가 선호됩니다.

Reference

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글