header | type | 설명 | 비고 |
---|---|---|---|
From | 요청 | 사용자 이메일 주소 | 소수의 상황에서만 사용 |
User-Agent | 요청 | 브라우저 및 운영체제 정보 | 콘텐츠 최적화에 유용 |
Referer | 요청 | 타고 들어온 근원페이지 | 접근 경로 파악 용이 |
Client-ip | 요청 | 클라이언트의 IP 주소 | 동일 PC, 방화벽 유무, 프락시, 게이트웨이 등 식별 불가 약점 존재. |
Q.) 웹 사이트 로그인이 왜 귀찮은 일인가? (원문:However, logging in to web sites is tedious. As Fred browses from site to site, he'll need to log in for each site. To make matters worse, it is likely that poor Fred will need to remember different usernames and passwords for different sites. His favorite username, "fred," will already have been chosen by someone else by the time he visits many sites, and some sites will have different rules about the length and composition of usernames and passwords. Pretty soon, Fred will give up on the Internet and go back to watching Oprah. The next section discusses a solution to this problem.) 각 페이지마다 매번 로그인을 시도하여 각 사용자를 구분하기 위함 때문인가? 그렇지 않다면 왜 로그인이 귀찮은가?
A.)
Q) Cookie, Session Cookie, Session Id 헷갈리는 용어. 각각 무슨 차이인가?
A) Session ID : A session ID is a unique number that a Web site's server assigns a specific user for the duration of that user's visit (session). The session ID can be stored as a cookie, form field, or URL(Uniform Resource Locator) (출처:https://www.techtarget.com/searchsoftwarequality/definition/session-ID)
해석하자면 세션ID란, 특정 사용자가 사이트를 방문하는동안 세션을 식별하는 고유한 값이다. 세션ID는 쿠키 방식으로 저장될 수 있다. 즉, 세션ID를 클라이언트에 저장하기 위해 쿠키를 이용하는 것
Session Cookie : 세션 쿠키는 세션 식별정보를 쿠키로 저장하는 정책을 사용할 경우, 클라이언트의 쿠키로 저장된 세션 데이터 전체(JSESSIONID, PHPSESSIONID 등)를 의미 (출처:https://okky.kr/articles/605454)
세션ID를 클라이언트에 저장해놓으면 클라이언트는 앞으로 모든 요청 헤더에 이 쿠키 값을 포함시켜 보내고 서버가 식별할 수 있다.
더 참고할 링크 : https://blog.toycrane.xyz/%EC%BF%A0%ED%82%A4%EC%99%80-%EC%84%B8%EC%85%98-fd1c93716fc7
쿠키버전 | spec | 응답헤더 |
---|---|---|
version 0 | Netscape | Set-Cookie |
Version 1 | RFC 2109 | Set-Cookie2 |
version
필드에 버전을 명시한다. (E.g. Cookie: $Version="0" 또는 "1"
)*함께 읽으면 좋은 내용 : https://meetup.nhncloud.com/posts/172
출처:https://ssup2.github.io/theory_analysis/HTTP_Cookie_Session
Set-Cookie: name=value; expires=[Date]; domain=[Domain]; path=[Path]; [secure]
필드명 | 내용 | 예시 |
---|---|---|
키=값 | 필수속성. '$'는 예약어로 사용하지 말 것. | Set-cookie: user="test1 |
domain | 어느 웹사이트에서 만든 것인지 알려준다. | domain="www.abc.com" |
path | 쿠키가 웹사이트의 어느 경로에서 사용되는지 Scope를 정의한다. | path=/main → www.abc.com/main 에서 쿠키 사용 가능. |
max-age | 쿠키의 생명주기. 0 또는 음수이면 즉시 쿠키 삭제 | max-age=10 |
expires | 쿠키의 생명주기를 날짜 문자열 GMT 형식으로 기술한다. 만료날짜 명시하지 않을 경우 사용자 세션 종료 시 쿠키 삭제(SessionCookie). | expires=요일, DD-MM-YY HH:MM:SS GMT |
secure | 해당 속성 포함 시, HTTP 프로토콜이 SSL 보안 연결 시에만 쿠키 전송 | secure |
Http-Only
Same-Site
Cache-Control: no-cahce="Set-Cookie"
를 기술해 캐시하지 않는다. 이는, 서버가 "Set-Cookie"
한 데이터를 브라우저가 캐시하지 않도록 하는 것이다.