원글(이글루): 2011-11-11 14:55:31
CORS (Cross-Origin Resource Sharing) 하는 방법
참조URL: http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html
본래 http->https로 iframe에서 통신을 할때 도메인이 다를경우 Cookie나 Header
정보들이 처리가 안되게 된다. 이를 지원하게 하기 위한 방법이 CORS이다.
1. 서버측 처리
1) Access-Control-Allow-Credentials: true
- 클라보고 Header나 Cookie등 믿고 보내라고 하는 뜻
2) Access-Control-Allow-Origin: * 로 하면안됨.
가급적 Origin (Referer가 아닌 Origin을 봐야할듯) 쪽에 있는 애를 저기에
동적으로 넣어줘야하지 않을까 싶음.
서버에서 Access-Control-Allow-Origin:를 요청한 패킷의 Origin을 보고 해당
Origin값으로 내려줘야한다.
3) Access-Control-Max-Age: 86400
이걸해야 OPTIONS를 해당 초동안 안올린다. (86400 = 하루로 해놔봤음)
이걸 안내려주면 계속 OPTIONS를 때려댄다.
4) Access-Control-Allow-Methods: POST
- 굳이 안해줘도 된다.
2. 클라(웹브라우저/js) 측 처리
1) js에서는 호출전에 다음과 같은 작업을 해야한다.
- 필수로 넣어야한다. (open하고 send사이에 있어야함)
http_request.withCredentials = "true";
2) 요청시에 클라이언트는 Content-Type 를 text/plain으로 해서 요청해야함.
- 사실 이건 지키지 않아도 정상 동작 하는 듯 하다.
- 이런식==> http_request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
꼭 해야하는건, 1.서버측의 1),2),3) 과 2.의 1) 이다.
'IT > 프로그래밍' 카테고리의 다른 글
[python] 외부 프로세스 실행한 결과를 string을 받기 (0) | 2023.09.13 |
---|---|
Local변수가 Stack 어떤 순서로 쌓이는지 조사 (0) | 2023.09.13 |
java/jsp 해당 메소드가 있는지 체크 (0) | 2023.09.13 |
[svn] update칠때 날짜와 시간으로 하기 (0) | 2023.09.13 |
[C/C++] Linux/Unix환경에서 ifdef 쉽게 추가하고 삭제하기 (0) | 2023.09.13 |