쿠키에 대해 자세히 설명좀 해 주실분?

park712의 이미지

제가 예날에 컴퓨터 프로그램 배운사람이라 그런지 몰라도
c,c++만해서 http www 자바 등 이런것은 거의 몰라요
따라서, 쿠키에 대해 정확히 알고 싶은데요
자세히 나와있는 사이트나 책이 있으면 알려주시면 감사합니다.
그리고, c(mfc포함)로 쿠키 정보를 제어 등 조작하려면
어떻게 해야하는지요?
인터넷 서점에서 쿠키 검색하니 정말 과자 만드는 법만 나오더군요

june의 이미지

쿠키는 어떤 사이트에 로그인 한 사용자에 대한 정보(이름, 별명..등등)를 가지고 있습니다. 사용자 정보가 필요한 곳에서 갖다 쓰죠. 사용자는 한번만 입력하면 되고.

자세한건 검색하시면 서울사는 김서방만큼 나올텐데.. 검색 하시죠. 인터넷 서점 말고요. 쿠키나 세션(session)으로 하세요.

커피는 블랙이나 설탕만..

nomoreid의 이미지

park712 wrote:
제가 예날에 컴퓨터 프로그램 배운사람이라 그런지 몰라도
c,c++만해서 http www 자바 등 이런것은 거의 몰라요
따라서, 쿠키에 대해 정확히 알고 싶은데요
자세히 나와있는 사이트나 책이 있으면 알려주시면 감사합니다.
그리고, c(mfc포함)로 쿠키 정보를 제어 등 조작하려면
어떻게 해야하는지요?
인터넷 서점에서 쿠키 검색하니 정말 과자 만드는 법만 나오더군요

우선 쿠키도 HTTP의 스팩중에 일부 입니다. 즉 www나 http에 대해서 좀 공부를 하셔야 합니다.

간단히 설명 드리자면. 웹서버와 브라우저는 기본적으로 하나의 리소스를 가져올때 연결을 끊고 맺음을 반복합니다. (http1.1 프로토콜의 keep-alive로 어느정도 time-out 시간을 줄수 있지만 옵션사항이구요.) 따라서 어떤 유저의 접속 정보라든지. 계속해서 유지해야 하는 정보는 처리하기가 힘들죠. 매번 주고 받거나 해야 하니까요.

그러나 서버에서 브라우저 한테 "여기 이 URL에 접근 할때 마다 이데이터를 보내줘!!!" (예를들면 여기 이 게시판에 접속할때마다 id정보를 넘겨줘) 라고 한다면 서버의 입장에서 편하겠죠. 서버에서 매번 페이지에 정보를 넣었다가 다시 받아서 보내주고 하는 일을 하지 않아도 되니까요. (첫페이지에서 로긴을 받고 게시판을 돌아다닌다고 했을때 user의 정보를 유지하는 일은 쿠키를 쓰지 않으면 상당히 귀찮은 일입니다.)

즉 연결을 계속 끊었다 맺는 웹 프로토콜에서 어떻게 상태 정보를 유지 할 것인가? (예를들면 세션의 유지 같은 ) 에 대해 나온 대안이 바로 쿠키 입니다.

웹서버는 사용자로 부터 특정한 정보를 받아 사용자의 브라우저에 쿠키라는 형태로 저장 할 수 있습니다. 그리고 브라우저는 해당 싸이트에 들어갈때마다 쿠키 정보를 http header에 넣어서 보내주게 됩니다.

웹서버에서 사용자의 브라우저로 특정값을 저장 하고 특정 URL의 자료에 접근할때 해당하는 값을 다시 서버로 보낼 수 있게 되는 것이죠.

쿠키는 해당하는 데이터(String) + 이 데이터가 효력을 끼치는 URL + 이 데이터가 효력을 종료되는 시간

이렇게 구성되어 있습니다. 주로 세션 정보나 사용자가 선택한 옵션정보등을 기억하는데 유효하겠죠.

HTTP프로토콜의 Header를 통해 주고 받기 때문에 눈에는 안보이지만 IE의 internet temp디렉토리에 보면 txt형태로 저장된 쿠키 파일을 볼 수 있습니다.

아주 몰지각한 웹프로그래머가 사용자의 아이디와 암호같은 개인정보를 바로 쿠키로 보낸다면 공용으로 사용하는 컴퓨터등에는 IE의 temp디렉토리를 열어서 보는것만으로도 사용자의 개인정보를 얻을 수 있겠죠.

따라서 자체적으로 암호화 한 값을 쿠키에 데이터로 사용해야 합니다.

http://wp.netscape.com/newsref/std/cookie_spec.html

이문서를 참고하십시요. 초창기 문서라 딱 쓰는부분만 나와 있습니다. 요즘은 좀더 복잡하더라구요.

Never Ending 삽질.

송효진의 이미지

nomoreid wrote:
자체적으로 암호화 한 값을 쿠키에 데이터로 사용해야 합니다.

라는 설명이 있어서 노파심에 조금 적습니다.

쿠키를 알고 나신 후에는 세션을 이용하시는것이 더 보안에 좋습니다.
쿠키에 직접 정보를 넣는것이 아니고,
쿠키를 세션키(이름표)로만 활용하는거죠.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.