Accept 는 무슨 역할을 하는건가요?

lkjt의 이미지

아,, 오늘 질문을 너무 많이 올리는군요..

RFC에는 이 브라우저가 가능한 멀티미디어를 보내는거라 하는데.

text/html , image/x-bitmap 이런식으로 보내게 되면

어떻게 recv가 되는거죠??

테스트 해본결과 다 같은데, Accept: text/*, text/html, text/html;level=1, */*

랜덤여신의 이미지

Accept 는...

서버가 클라이언트의 기능을 알아보는 데에 주로 쓰입니다.

예를 들어, 서버는 페이지의 크기가 너무 클 때, 페이지를 gzip 등의 압축 기법으로 압축하여 클라이언트에게 보낼 수 있습니다.

그런 상황에서, 서버는 클라이언트가 서버에 보낸 Accept 를 보고, 이 클라이언트가 gzip 인코딩을 쓸 수 있는지/없는지 등을 판단하게 됩니다.

그러므로, 그냥 Accept: * 등으로 사용하시면 무방합니다.

progcom의 이미지

HTTP 1.1 규격 문서

HTTP 프로그램을 하신다면, 프린트를 해놓고 참고하시던지, 한번쯤 전문을 읽어보시기 바랍니다.
14.1 절에 Accept: 헤더에 관한 내용이 전부 적혀있습니다.
(맨 앞쪽 목차에 필요한 부분이 어디인지 매우 찾기 편하게 되어있습니다)

참고로, barosl 님은 Accept-Encoding: 헤더를 말씀하신듯 싶군요. :D
Accept: 는 브라우저가 표시할 수 있는 MIME 타입을 지정합니다. 보통 */*를 넣기 때문에 뭐든지 보내버리긴 합니다만... q로 우선 순위를 지정해서 동일한 문서가 있을 경우 어떤걸 먼저 보낼지 선택할 수도 있게 합니다. (서버에서 지원한다면 말입니다만...)

lkjt의 이미지

물론 RFC문서를 읽어 봣는데,

가능한것을 나타내는데

만약

image/jpeg라고 보내면

그림 파일의 주소들과 그림과 관련된 태그만 보내지는지 이게 궁금합니다...

테스트 해보면 다 똑같은데,,,

progcom의 이미지

문제는 '서버가 지원'을 하는 것입니다.
실제로 지원하지 않는 부분도 꽤 되는게 실정입니다.
(굳이 지원할 필요가 없으면 안하는 경우도 많습니다)

Quote:

If no Accept header field is present, then it is assumed that the
client accepts all media types. If an Accept header field is present,
and if the server cannot send a response which is acceptable
according to the combined Accept field value, then the server SHOULD
send a 406 (not acceptable) response.

보시다시피 SHOULD로 지정되어 있기 때문에, 적합하지 않을 경우 406 응답을 하는것이 권장 사항이긴 하지만, 그렇게 하지 않아도 됩니다.
참고로 RFC 2119의 SHOULD의 정의는 다음과 같습니다.

Quote:

3. SHOULD This word, or the adjective "RECOMMENDED", mean that there
may exist valid reasons in particular circumstances to ignore a
particular item, but the full implications must be understood and
carefully weighed before choosing a different course.

MUST가 아닌 이상 강제 사항은 아니라는 점에 주의하세요.

lkjt의 이미지

음,
서버가 만약에 지원된다면

제가 말한것처럼 오나요?

lkjt의 이미지

그리고 혹시

아파치는 지원이 안되는지요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.