2011-07-29 10 views
1

두 가지 GET 요청이 있습니다.GET 요청의 차이점은 무엇입니까?

1) "평소"GET (페이지 재로드 포함).

2) ajax GET (sync, async) 백그라운드 요청.

그들 사이의 차이점은 무엇입니까 ?? HTTP 표준은 그 (것)들을 bitween 구별합니까?

답변

3

아니요. 차이는 없습니다. 일부 브라우저와 jQuery와 같은 일부 프레임 워크는 추가 헤더를 보내므로 원하는 경우 구분할 수 있습니다. 그렇지 않으면 그들은 동일하게 취급됩니다.

1

아니요, HTTP 표준은 이들 사이를 구분하지 않습니다. 이 구분은 브라우저 수준에서 적용됩니다.

기본적으로 큰 차이는 XMLHttpRequest ("ajax"요청)을 통한 요청이 Same Origin Policy의 영향을받습니다. 보통 GET은 그렇지 않습니다. 즉, 정상적인 경우 스크립트가 실행되는 페이지와 다른 "출처"에서 리소스를 검색하기 위해 진정한 "ajax"요청을 사용할 수 없습니다. (이 스크립트가 실행되고있는 페이지의 기원 있다는 하지 어디서든 할 수있는 스크립트 파일의 출처를 참고.)

은 "아약스는"심지어 크로스 사용할 수있는 방법이 있습니다 -origin :

  • Cross Origin Resource Sharing (CORS)가 일부 브라우저로 W3C에 의해 정의 구현 된 새 (틱) 기술입니다. 요청 된 자원이 요청 문서에 의해 사용되도록 허용할지 여부를 결정할 수 있습니다. IE의 지원 이 깨졌습니다.XMLHttpRequest이 아닌 XDomainRequest 오브젝트를 사용해야합니다. 모든 주요 브라우저의 최신 버전에서 지원됩니다.
  • JSON-P은 "ajax"요청이 전혀 아님에 따라 제한 사항을 해결합니다. 대신 클라이언트가 서버에있는 스크립트를 script 요소를 통해 포함 할 수 있도록 클라이언트와 서버가 관찰하는 규칙입니다. 문제의 스크립트는 대개 동적으로 생성되며 함수를 호출하여 페이로드로 JavaScript 객체를 전달하는 것이 유일한 작업입니다.
+0

동일한 출발 정책이 POST 요청에만 적용되는 것으로 생각했습니다. – GolezTrol

+0

@Golez : 아니요,'GET' 또는'POST' 또는'PUT' 또는'DELETE' 등 모든'XMLHttpRequest'가 생성 한 (예 : "ajax") 요청에 적용됩니다. JSON- P는 SOP (실제로 "아약스 (ajax)"호출이 아닌)에 의해 끝나지 만, GET을 위해서만 작동한다. (왜냐하면 그것은 핵심적으로, 스크립트 파일을 문서에 추가하기 때문이다). –

+0

삭제 해 주셔서 감사합니다. 내 +1을 받았습니다. – GolezTrol

관련 문제