v博客前言

先交代下背景,写这个系列的原因是总结自己遇到的面试题以及可能遇到的题目,更重要的是,今年定的目标是掌握网络这一块的知识点,先是搞懂HTTP协议,然后是TCP/IP协议,再就是WCF如何运用这些协议更好地工作。

 

不惧面试:HTTP协议(1) - 基础扫盲

不惧面试:HTTP协议(2) - 网关、隧道和中继

不惧面试:HTTP协议(3) - Cookie

不惧面试:HTTP协议(4) - 安全HTTP

不惧面试:HTTP协议(5) - 基本认证机制

持续更新中...

面试常见题:

  1.Cookie是什么?★☆

  2.Cookie能做什么?★☆

  3.Cookie是怎么分类的?★☆

  4.Cookie的工作原理?★★★

  5.Cookie是怎么存储的?★☆

  6.每次访问网站时,是不是将所有的cookie都发送所有的站点?★

  7.cookie与缓存怎么取舍?★★

  8.cookie的缺点?★★

  9.如何使用cookie?★★★

看完这些题目,心中是否有疑惑呢?那就接着看呗,我来帮您解答心中的疑惑o(^▽^)o

参考答案:

1.Cookie是什么?★☆

cookie时当前识别用户,实现持久化会话的最好方式。简单点说就是服务器知道正在和哪个客户端通信,以及保持与已识别出的客户端通信。Cookie的基本思想就是让浏览器积累一组服务器特有额信息,每次访问服务器时都将这些信息提供给它。

2.Cookie能做什么?★☆

对连接另一端的用户有更多的了解,并且能在用户浏览页面时对其进行跟踪。

3.Cookie是怎么分类的?★☆

(1)会话cookie。临时cookie,记录了用户访问站点时的设置和偏好。用户退出浏览器时,会话cookie就被删除了。

(2)持久cookie。持久cookie的生存时间更长一些;它们存储在硬盘上,浏览器退出,计算机重启时它们仍然存在。通常会用持久cookie维护某个用户会周期性访问的站点的配置文件或登录名。

唯一区别就是它们的过期时间。如果设置了Discard参数或没有设置Expires或没有设置Max-Age参数则说明这个cookie就是一个会话cookie。

4.Cookie的工作原理?★★★

(1)用户首次访问Web站点时,Web服务器对用户一无所知。

(2)Web服务器通过Set-Cookie首部将cookie存放到浏览器中的cookie数据库中。cookie中包含了N个键值对,例如Cookie: id=“1234”。cookie中可以包含任意信息,但它们通常都只包含一个服务器为了进行跟踪而产生的独特的识别码。

(3)将来用户再次访问同一站点时,浏览器会从cookie数据库中挑中那个服务器设置的cookie,并在cookie请求首部中(Cookie: id=“1234”)将其传回给服务器。

(4)服务器可以通过id="1234"这个键值对来查找服务器位其访问这积累的数据库信息(购物历史、地址信息等)。

注意:cookie并不仅限与ID号。很多Web服务器都会将信息直接保存在cooki中。比如Cookie: name="Tom"; phone="111-2222"

5.Cookie是怎么存储的?★☆

浏览器负责存储cookie信息。不同的浏览器会以不同的方式来存储cookie。有的浏览器用cookis.txt存储。有的浏览器存储在高速缓存目录下独立的文本文件中。

6.每次访问网站时,是不是将所有的cookie都发送所有的站点?★

不是,浏览器通常只向每个站点发送2~3个cookie。原因如下:

(1)对所有这些cookie字节进行传输会严重降低性能。

(2)cookie中包含的时服务器特有的名值对,对大部分站点来说,大多数cookie都只是无法识别的无用数据。

(3)将所有的cookie发送给所有站点会引发潜在的隐私问题,那些你并不信任的站点也会获得你只想发给其他站点的信息。

7.cookie与缓存怎么取舍?★★

cookie是私有的,浏览器不希望得到的cookie和其他浏览器的cookie相同。一般缓存cookie图片而不缓存文本。

8.cookie的缺点?★★

存在安全隐患。第三方Web站点使用持久cookie来跟踪用户就是对cookie一种最大的滥用。将这种做法与IP地址和Referer首部信息结合在一起,这些营销公司就可以构建起相当精确的用户档案和浏览模式信息。

9.如何使用cookie?★★★

Set-Cookie首部用在服务器返回的response中。它有一个强制性的cookie名和cookie值。后面跟着可选的cookie属性,中间由分号分隔。

Set-Cookie属性

说明

例子

NAME=VALUE

强制的。NAME和VALUE都是字符序列。Web服务器可以创建任意的NAME=VALUE关联,在后继对站点的访问中会将其送回给Web服务器:

Set-Cookie:Name=Tom

Expires

可选的。日期字符串。定义cookie的实际生存期。一旦过了过期日期,就不再存储或发布这个cookie了。

Set-Cookie:Name=Tom; expires=Wednesday,09-Nov-99 20:00:00 GMT

Domain

可选的。浏览器只向指定域中的服务器主机名发送cookie。这样服务器就将cookie限制在了特定的域中。

Set-Cookie:Name=Tom; domain:"cnblogs.com"

Path

可选的。通过这个属性可以位服务器上特定的文档分配cookie。

Set-Cookie:Name=Tom; path=/abc用户访问http://www.abc123.com 可能获得一个cookie: Name=Tom

当用户访问http://www.abc123.com/test.html  可能获得两个cookie,其中一个是之前已经获得cookie: Name=Tom,另外一个是cookie:page=test。

Secure

可选的。如果包含了这一属性,就只有在HTTP使用SSL安全连接时才会发送cookie。

Set-Cookie:Name=Tom; secure

Cookie首部用在浏览器发送的request中。它会将所有与域、路径和安全过滤器相匹配的未过期cookie都发送给这个站点。所有cookie都被组合到一个cookie首部中。

Cookie: Name1=Tom; Name2=Jerry

作  者:
Jackson0714

出  处:http://www.cnblogs.com/jackson0714/

关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信

声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

支付宝/微信打赏:

不惧面试:HTTP协议(3) - Cookie的更多相关文章

  1. 不惧面试:HTTP协议(1) - 基础扫盲

    v博客前言 先交代下背景,之前在一家公司面试.NET开发,去了先是做一份笔试题,有一半是关于HTTP协议的,技术总监直接面试,也是问一大堆HTTP协议的知识点,可能跟该公司的产品有关,该公司属于互联网 ...

  2. HTTP协议 (七) Cookie

    HTTP协议 (七) Cookie Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的[细说Cookie], 让我学到了很多东西.Fish的这篇文章写得太经典了. 所以我这篇 ...

  3. HTTP协议 (七) Cookie(转)

    add by zhj: 客户端通过request header:cookie将cookie发给服务端,而服务端通过response header: set-cookie将cookie传回客户端 一条c ...

  4. 转:Http协议中Cookie详细介绍

    Http协议中Cookie详细介绍 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了, ...

  5. http协议之cookie标准RFC6265介绍

      [Docs] [txt|pdf] [draft-ietf-httpst...] [Diff1] [Diff2] [Errata] PROPOSED STANDARD Errata Exist In ...

  6. http无状态协议,cookie和session详解(一)

    1.HTTP无状态协议 首先看百度百科给出的定义: HTTP无状态协议,是指协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重传, 这样导致可能每次连接传送的数据量增大 ...

  7. http协议、cookie及session

    1. HTTP协议是无连接的 网页操作--浏览器--Http协议--web服务器(appache/IIS) 无连接的 每次连接只处理一个请求,服务器处理完并收到客户端应答,即断开连接 目的:节省传输时 ...

  8. Http协议中Cookie使用详细介绍

    Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的.硬盘Cookie ...

  9. 面试 04-HTTP协议

    04-HTTP协议 一面中,如果有笔试,考HTTP协议的可能性较大. #前言 一面要讲的内容: HTTP协议的主要特点 HTTP报文的组成部分 HTTP方法 get 和 post的区别 HTTP状态码 ...

随机推荐

  1. STM32 PWM波

    利用STM32产生占空比可以调节的PWM波 科普:pwm(Pulse Width Modulation)脉宽调制 关于pwm波的产生:1.首先来看一下代码: pwm波模式的相关配置(利用的是定时器TI ...

  2. RabbitMQ消息队列(九):Publisher的消息确认机制

    在前面的文章中提到了queue和consumer之间的消息确认机制:通过设置ack.那么Publisher能不到知道他post的Message有没有到达queue,甚至更近一步,是否被某个Consum ...

  3. AJAX异步加载

    AJAX含义: 即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX可以跨 ...

  4. Windows 7 Professional安装多语言包

    本文出自 "王春海的博客" 博客,请务必保留此出处http://wangchunhai.blog.51cto.com/225186/223635 下载了Windows 7 Prof ...

  5. Python3基础 map 与 lambda表达式配合 将指定系列元素乘2

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  6. 8.DNS :域名系统

    前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非 ...

  7. WGCNA算法研究笔记

    转自:http://www.gogoqq.com/ASPX/8390905/JournalContent/1303140588.aspx 研究了近半年的算法,记录下来给自己一个交代,也应该是考G前地最 ...

  8. php sprintf函数

    定义和用法 sprintf() 函数把格式化的字符串写写入一个变量中.sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需.转换格式. arg1 必需.规定插 ...

  9. 使用原始XML资源——定义原始XML资源

    原始XML资源一般保存在/res/xml路径下——当使用ADT创建Android应用时,/res/目录下并没有包含该目录,开发者应该自行手动创建xml目录. 接下来Android应用对原始XML资源没 ...

  10. iOS 登陆之使用ShareSDK

    0. 概述 登陆要使用ShareSDK,可以实现多社交平台账号登陆,短信验证,并且都是永久免费的. 网址:www.mob.com 1.iOS 登陆之界面设置