크게 보면 이런 구조이다.
form 태그로 정보를 서버에 전송하면 페이지가 전체가 Reloading
된다. 즉, 페이지 전환시 불필요한 모든 부분까지 전부 로딩하는 것이다.
그래서 원하는 부분만 로딩할수 있게 서버와 자유롭게 통신할 수 있는 XRH(XMLHttpReqeust) 과 페이지 깜빡 없이 seamless 하게 작동하는 JavaScript와 DOM을 이용하는 Ajax가 탄생한다.
function reqListener () { console.log(this.responseText); } var oReq = new XMLHttpRequest(); oReq.addEventListener("load", reqListener); oReq.open("GET", "http://www.example.org/example.txt"); oReq.send();
$.ajax({ url: 'http://example.com', method: 'GET', dataType: 'json' }) .done(function(json) { console.log(json) }) .fail(function(xhr, status, errorThrown) { }) .always(function(xhr, status) { console.log('요청완료') });
fetch('http://example.com') .then(res => res.json()) .then(data => { console.log(data); }) .catch(err=>{ console.error(err) });
cors는 브라우저가 리소스로드를 허용해야하는 원본이 아닌 다른 원본을 서버가 나타낼 수 있도록 하는 HTTP 헤더기반 메커니즘으로 API를 사용하는 웹 어플리케이션은 자신의 출처와 동일한 리소스만 불러올수 있으며, 다른 출처의 리소스를 불러오려면 그 출처에서 올바른 CORS 헤더를 포함한 응답을 반환해야 한다.
서버의 위치를 찾아가기 위해서는 기본으로 Protocol , Host , :80 , : 443(위에 보이진 않지만 Host 뒤에 붙어 있음.) 가 필요하다.
xss 공격에 취약한 웹사이트를 탐색 후 xss공격을 위한 스크립트를 포함한 url 을 사용자에게 노출시킨다. 사용자가 해당 url을 클릭할 경우 취약한 웹사이트의 서버에 스크립트가 포함된 url을 통해 request를 전송하고 웹서버에서는 해당 스크립트를 포함한 response를 전송한다.