aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/http/headers/access-control-allow-origin/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ko/web/http/headers/access-control-allow-origin/index.html')
-rw-r--r--files/ko/web/http/headers/access-control-allow-origin/index.html140
1 files changed, 140 insertions, 0 deletions
diff --git a/files/ko/web/http/headers/access-control-allow-origin/index.html b/files/ko/web/http/headers/access-control-allow-origin/index.html
new file mode 100644
index 0000000000..7fcc879d53
--- /dev/null
+++ b/files/ko/web/http/headers/access-control-allow-origin/index.html
@@ -0,0 +1,140 @@
+---
+title: Access-Control-Allow-Origin
+slug: Web/HTTP/Headers/Access-Control-Allow-Origin
+translation_of: Web/HTTP/Headers/Access-Control-Allow-Origin
+---
+<p><code><strong>Access-Control-Allow-Origin</strong></code> 응답 헤더는 이 응답이 주어진 {{glossary("origin")}}으로부터의 요청 코드와 공유될 수 있는지를 나타냅니다.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="구문">구문</h2>
+
+<pre class="syntaxbox">Access-Control-Allow-Origin: *
+Access-Control-Allow-Origin: &lt;origin&gt;
+Access-Control-Allow-Origin: null
+</pre>
+
+<h2 id="지시자">지시자</h2>
+
+<dl>
+ <dt><code>*</code></dt>
+ <dd><em>credential</em>이 없는 요청들에 와일드카드로써 문자 값 "*"이 명시될 수 있습니다. 이 값은 브라우저에 리소스에 접근하는 임의의 origin으로부터의 요청 코드를 허용함을 알립니다.  와일드카드를 credential과 함께 사용하려고 하면 <a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials">오류가 발생</a>합니다.</dd>
+ <dt><code>&lt;origin&gt;</code></dt>
+ <dd>origin을 명시합니다. 하나의 origin만 명시될 수 있습니다.</dd>
+</dl>
+
+<h2 id="예시">예시</h2>
+
+<p>브라우저에 리소스에 접근하는 임의의 origin으로부터의 요청을 허용한다고 알리는 응답은 다음을 포함할 것입니다:</p>
+
+<pre>Access-Control-Allow-Origin: *</pre>
+
+<p>브라우저에 <code>https://developer.mozilla.org</code>으로부터의 요청을 허용한다고 알리는 응답은 다음을 포함할 것입니다:</p>
+
+<pre>Access-Control-Allow-Origin: https://developer.mozilla.org</pre>
+
+<p>가능한 <code>Access-Control-Allow-Origin</code> 값을 허용된 origin 집합으로 제한하는 것은 요청 헤더의 {{HTTPHeader("Origin")}}를 검사하는 서버 측 코드가 필요합니다. 이를 허용된 origin 리스트와 비교하고,  {{HTTPHeader("Origin")}} 값이 리스트에 있으면 <code>Access-Control-Allow-Origin</code> 값을 {{HTTPHeader("Origin")}}과 동일한 값으로 설정합니다.</p>
+
+<h3 id="CORS_and_caching">CORS and caching</h3>
+
+<p>서버가 ("<code>*</code>" 와일드카드 외에) 명시적인 origin을 <code>Access-Control-Allow-Origin</code> 과 함께 응답으로 보내면, 응답은 값이 <code>Origin</code>인 {{HTTPHeader("Vary")}} 응답 헤더 또한 포함해야 합니다 — 브라우저에 서버가 <code>Origin</code> 요청 헤더의 값에 따라 다르게 응답할 수 있음을 알리기 위해.</p>
+
+<pre>Access-Control-Allow-Origin: https://developer.mozilla.org
+Vary: Origin</pre>
+
+<h3 id="Handling_CORS_on_the_server_(Java_example)">Handling CORS on the server (Java example)</h3>
+
+<p>다음의 Java 코드는 CORS 요청 헤더를 설정합니다. 코드가 어떻게 <code>Access-Control-Allow-Origin</code> 값을 {{HTTPHeader("Origin")}} 요청 헤더와 동일한 값을 설정하는지 알아 두십시오.</p>
+
+<pre class="brush: java">import java.io.IOException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class SimpleCORSFilter implements Filter {
+
+private final Logger log = LoggerFactory.getLogger(SimpleCORSFilter.class);
+
+public SimpleCORSFilter() {
+ log.info("SimpleCORSFilter init");
+}
+
+@Override
+public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
+
+ HttpServletRequest request = (HttpServletRequest) req;
+ HttpServletResponse response = (HttpServletResponse) res;
+ response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
+ response.setHeader("Access-Control-Allow-Credentials", "true");
+ response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
+ response.setHeader("Access-Control-Max-Age", "3600");
+ response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me");
+ chain.doFilter(req, res);
+}
+
+@Override
+public void init(FilterConfig filterConfig) {
+}
+
+@Override
+public void destroy() {
+}
+
+}
+</pre>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('Fetch','#http-access-control-allow-origin', 'Access-Control-Allow-Origin')}}</td>
+ <td>{{Spec2("Fetch")}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Access-Control-Allow-Origin")}}</p>
+
+<h2 id="참고">참고</h2>
+
+<ul>
+ <li>{{HTTPHeader("Origin")}}</li>
+ <li>{{HTTPHeader("Vary")}}</li>
+ <li><a href="https://gist.github.com/wildoctopus/3730b5c60f9d5224f6c2418d07708e21">CORS 문제를 어떻게 해결하나요?</a></li>
+</ul>
+
+<div>{{HTTPSidebar}}</div>