크로스 도메인은 브라우저의 동일 출처 정책으로 인해 발생합니다. 이는 페이지에서 요청한 URL 주소가 브라우저의 URL 주소와 동일한 도메인에 있어야 함을 의미합니다(즉, 도메인 이름, 포트 및 프로토콜은 동일합니다.) 다음 글에서는 프론트엔드 면접에 꼭 필요한 동일 출처와 크로스 도메인에 대한 관련 정보를 모두 소개해 드렸으니, 필요한 친구들은 참고하시면 됩니다. 그것.
머리말
브라우저의 동일 출처 정책과 교차 도메인 방식도 프런트엔드 인터뷰에서 매우 흔한 문제라는 것은 잘 알려져 있습니다. 이 기사에서는 주로 동일 출처와 교차 도메인에 대해 공유합니다. 프론트엔드 인터뷰에서 만나게 될 도메인 메소드에 대해서는 크로스 도메인 문제에 대해선 별로 할 말이 없습니다.
동일 원본 정책이란 무엇인가요?
동일 원본 정책은 한 소스에서 로드된 문서나 스크립트가 다른 소스의 리소스와 상호 작용하는 방식을 제한하는 데 사용되는 방법입니다. 안전 메커니즘.
동일한 출처란 무엇인가요?
두 페이지의 프로토콜, 도메인 이름, 포트가 동일하면 두 페이지는 동일한 출처입니다. 예: http://www.hyuhan.com/index.html 이 웹사이트의 프로토콜은 http, 도메인 이름은 www.hyuhan.com, 포트는 80(기본 포트), 출처는 다음과 같습니다.
http://www.hyuhan.com/other.html: 동일한 소스
http://hyuhan.com/other.html: 다른 소스(다른 도메인 이름)
https:// www.hyuhan.com /other.html: 다른 소스(다른 프로토콜)
http://www.hyuhan.com:81/other.html: 다른 소스(다른 포트)
동일 출처 정책 사용자 정보 보안을 위한 것으로 동일 출처 정책에 의해 제한되는 주요 동작은 다음과 같습니다.
Cookie, LocalStorage, IndexDB를 읽을 수 없음
DOM을 실행할 수 없음
AJAX 요청을 보낼 수 없음
교차 도메인 액세스를 진행하는 방법
교차 도메인 AJAX 요청을 만드는 방법
동일 출처 정책의 제한을 우회하여 교차 도메인 AJAX를 만드는 세 가지 주요 방법이 있습니다. 요청.
JSONP
JSONP는 클라이언트와 서버 간의 도메인 간 통신을 위한 일반적인 방법입니다. 서버에서 json 데이터를 요청하려면 크로스 도메인 <script><p class="jb51code"><br/></script>
window.onload = function() { var script = document.createElement('script'); script.src = "http://example.com/callback=test"; document.appendChild(script); } function test(res) { console.log(res); }
src의 콜백 매개변수는 백엔드가 호출해야 하는 콜백 함수의 이름을 설정하는 데 사용됩니다. 서버에서 반환되는 데이터는 다음과 같습니다.
test({ "name": "小明", "age": 24 })
이러한 방식으로 프런트 엔드는 여러 도메인의 터미널 데이터를 읽을 수 있습니다. 그러나 jsopn은 get 요청만 할 수 있고 post 요청을 보낼 수 없습니다.
WebSocket
WebSocket은 TCP 기반의 새로운 네트워크 프로토콜로 동일 출처 정책을 구현하지 않으며 서버가 지원하는 한 도메인 간 액세스를 허용합니다. 그리고 WebSocket은 Ajax 통신에만 국한되지 않습니다. Ajax 기술에서는 클라이언트가 요청을 시작해야 하고 WebSocket 서버와 클라이언트가 서로 정보를 푸시할 수 있기 때문입니다.
CORS
CORS는 W3C 표준인 Access-Control-Allow-Origin(Cross-Domain Resource Sharing)의 약어입니다. CORS는 브라우저와 서버 모두에서 지원되어야 합니다. 현재 기본적으로 모든 브라우저는 이 기능을 지원합니다. CORS에 대한 서버 측 지원은 주로 Access-Control-Allow-Origin 설정을 통해 수행됩니다. 브라우저가 해당 설정을 감지하면 Ajax 도메인 간 액세스를 허용할 수 있습니다.
document.domain
쿠키는 서버가 브라우저에 기록하는 정보로, 보안상의 이유로 동일한 출처의 웹페이지만 공유할 수 있습니다. 단, 두 웹페이지의 1차 도메인 이름은 동일하지만 헤드폰의 도메인 이름이 다른 경우 document.domain을 설정하여 쿠키를 공유할 수 있습니다.
예를 들어 한 웹페이지의 도메인 이름은 http://w1.example.com/a.html이고 다른 웹페이지의 도메인 이름은 http://w2.example.com/b.html입니다. 동일한 document.domain을 설정하면 이 두 웹페이지는 쿠키를 공유할 수 있습니다.
postMessage API
postMessage() 메서드를 사용하면 다양한 소스의 스크립트가 제한된 방식으로 비동기 방식으로 통신할 수 있어 문서 간, 다중 창 및 도메인 간 메시징이 가능해집니다. postMessage() 함수를 사용하여 메시지를 전달하고, 대상 페이지는 메시지를 수신하기 위해 창의 메시지 이벤트를 수신합니다. postMessage를 사용하면 도메인 전체에서 LocalStorage, IndexDB 및 DOM 데이터를 읽을 수 있습니다.
window.name
브라우저 창에는 window.name 속성이 있습니다. 이는 소스가 동일한지 여부에 관계없이 이전 웹 페이지가 창에 이 속성을 설정하는 한 다음 웹 페이지에서 읽어보세요. 즉, 창(창)의 수명 주기 내에서 창에 의해 로드된 모든 페이지는 window.name을 공유합니다. 각 페이지는 로드된 모든 페이지의 window.name에 대한 읽기 및 쓰기 권한을 갖습니다. . 분명히 이는 도메인 간 액세스를 달성할 수 있습니다.
위 내용은 동일 출처 및 교차 도메인 프런트엔드 인터뷰에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

사람들은 Jamstack 사이트가 빠르다고 말합니다. 실제 성능 메트릭을 보면 이유를 알아 봅시다! 첫 바이트까지의 시간과 같은 일반적인 메트릭을 다룰 것입니다

브라우저 지원이 마침내 우리가 사용할 수있는 곳에 있기 때문에 그들의 힘을 발견하기 위해 CSS 사용자 정의 속성을 가지고 놀았습니다.

Jamstack의 멋진 세상이 커지면서 도움이되는 모든 서비스 및 도구 범주가 그 어느 때보 다 중요합니다. 정적 사이트가 있습니다

Internet Explorer (IE) 11과 다른 모든 주요 브라우저 사이의 거리는 점점 더 큰 틈이 있습니다. 기술적으로 더 이상 사용되지 않는 지원 추가

Maurice Mahan은 "포커스 요소에 대한 오버레이를 만들기위한 라이브러리"인 Focus Overlay를 만들었습니다. 그 설명은 당신에게 약간 혼란 스럽습니다.

컨테이너 쿼리는 항상 CSS에 대한 요청 된 개선 목록의 상단에 있습니다. 일반적인 감정은 컨테이너 쿼리가 있다면 우리는

이미지를 도와 주려는 모든 사이트가 있습니다. 그들은 이미지를 최적화하고 성능을 제공하는 데 도움이됩니다. 그것은 아주 좋은 일입니다. 모든 메트릭으로 이미지는 자원의 주요 슬라이스입니다.

WordPress는 버전 5.0에서 블록 편집기 (일명 Gutenberg)를 다시 배송했으며 WordPress 로고 그리기를 보여주는 Snazzy New Post 미리보기 화면이 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

드림위버 CS6
시각적 웹 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
