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. 试水MongoDB

    1)安装好后启动mongodb 服务 1_1) 建立data/db     ,保证至少有3g大小的盘 1_2) 建立log 文件夹 1_3)配置文件 内容,指定数据存放位置.日志文件位置 dbpath ...

  2. Thinking in scala (1)----类

    ChecksumAccumulator.scala import scala.collection.mutable.Map class ChecksumAccumulator { private va ...

  3. Tsinsen-1487:分配游戏【树状数组】

    首先一定要看到x + y + z = N这个条件,没看到就世界再见了. 赢的人得分需要大于等于2,那么无非就是 (x, y), (x, z), (y, z), (x, y, z) 大于其他的点.但是考 ...

  4. sqlserver修改增删改字段

    ---新增列 alter table article add addtime0 datetime ---修改列 alter table article ) --删除列 alter table arti ...

  5. 《C++ Primer》 chapter 15 TextQuery

    <C++ Primer>中第15章为了讲解面向对象编程,举了一个例子:设计一个小程序,能够处理查询给定word在文件中所在行的任务,并且能够处理“非”查询,“或”查询,“与”查询.例如执行 ...

  6. iOS网络高级编程:iPhone和iPad的企业应用开发(书籍学习)

    作者:Jack Cox.Nathan Jones.John Szumski 译者:张龙  勘误  前言  第 I 部分 理解iOS与企业网络 这一部分从高层次概览了iOS网络以及针对移动网络架构的最佳 ...

  7. js架构设计模式——MVVM模式下,ViewModel和View,Model有什么区别

    MVVM模式下,ViewModel和View,Model有什么区别 Model:很简单,就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与数据库对应的model. View:也很简单,就 ...

  8. js原生之scrollTop、offsetHeight和offsetTop等属性用法详解

    scrollTop.offsetHeight和offsetTop等属性用法详解:标题中的几个相关相关属性在网页中有这大量的应用,尤其是在运动框架中,但是由于有些属性相互之间的概念比较混杂或者浏览器兼容 ...

  9. Eclipse 使用说明

    2. 使用技巧 2.1. Eclipse 打开文件所在文件夹 2.2. Mac 安装Eclipse 2.3. Eclipse 安装插件 2.4. Eclipse 工具栏不见了 2.5. Eclipse ...

  10. swift 中使用OC第三方库(以AFNetworking为例)

    首先呢  把你需要的第三方库导入到你的项目中来  具体怎么导入 这不是这篇的重点  看上一篇 废话不多  直接上 (1)在项目中直接建一个 oc 的控制器  然后xcode会提醒你  要不要建造桥接文 ...