【网络协议】Http-下

HTTP常见Header
Content-Type: 数据类型(text/html等)
Content-Length: Body的长度
Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
User-Agent: 声明用户的操作系统和浏览器版本信息;
referer: 当前页面是从哪个页面跳转过来的;
location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能;

以上报头前面的文章多少有涉及到,在这里理解可谓水到渠成。这里只说明cookie。

在 Web认证中 ,因为HTTP协议本身的局限,必须采用其他技术将相关认证标记以某种方式持续传送,以免客户从一个页面跳转至另一个页面时重新输入认证信息。基于Cookie的认证过程,主要由以下三个阶段组成:

(1)发布Cookie。当用户试图访问某Web站点中需要认证的资源时,Web服务器会检查用户是否提供了认证Cookie,如果没有,则将用户重定向到登录页面。在用户成功登录后,Web服务器会产生认证Cookie,并通过HTTP响应中的Set-Cookie头发送给客户端,用于对用户随后的请求进行检查和验证,接着将用户重定向到初始请求的资源。

(2)检索Cookie。在用户随后的访问请求中,客户端浏览器检索Path和Domain等属性与用户请求资源相匹配的Cookie,并将找到的Cookie通过Http请求中的Cookie头提交给Web服务器。

(3)验证CookieWeb服务器提取客户端浏览器递交的Cookie,验证其中的访问令牌。若合法,则将访问请求的资源发送给客户端浏览器;反之则拒绝用户的访问请求。Cookie 认证技术简化了用户访问 Web 网站资源的过程,即用户只需在初次登录网站时输入身份信息进行认证,随后便可以访问被授权的所有站点资源,不再需要重复手工提交身份信息。

下面中是百度百科关于Cookie和Session的解释:

Cookie:举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cookie 文件的形式保存在每个用户的机器上。如果使用浏览器访问 Web, 会看到所有保存在硬盘上的 Cookie。在这个文件夹里每一个文件都是一个由"名/值"对组成的文本文件,另外还有一个文件保存有所有对应的 Web 站点的信息。在这里的每个 Cookie 文件都是一个简单而又普通的文本文件。透过文件名, 就可以看到是哪个 Web 站点在机器上放置了Cookie(当然站点信息在文件里也有保存) 。

所谓"cookie"数据是指某些网站为了辨别用户身份,储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
Session:在计算机中,尤其是在网络应用中,称为"会话控制"。session存储特定用户所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅"ASP应用程序"部分的"管理会话"。注意会话状态仅在支持cookie的浏览器中保留。

cookie是服务器端创建,浏览器端保存的数据。

当登录网站时发送的http请求携带账号密码,服务器会创建一个唯一的session对象来描述你的会话,并在http响应报头中携带"Set-Cookie: session id"的字段。方便你在会话结束或被销毁前,对该网站发起新的请求,这时浏览器就会自动发送携带Cookie中的session id的请求来进行身份识别。

cookie有到期时间。到期后,再次访问这个Web站点,服务器根据其请求中携带的cookie判断其已经到期,就会提示你再次登录,并销毁原来的session,创建一个新的session对象管理新的会话,也会创建新的cookie返回给浏览器。

当然cookie不止可以进行身份识别,当你在购物网站上购物的时候,把第一个商品加入购物车,然后去访问第二个商品。由于Http是无状态的,无法知道原来你的购物车中有什么,所以利用cookie把第一个商品的信息在本地浏览器存储下来,然后在访问第二个商品的时候把cookie随着新的请求发送。这样cookie就会存储多个商品的信息,最后付款时从cookie中提取这些信息,发送请求给服务器形成购物车功能。

相关推荐
报错小能手3 小时前
计算机网络自顶向下方法36——网络层 网络地址转换 网络安全(防火墙、入侵检测系统)
网络·计算机网络·智能路由器
研究司马懿3 小时前
【ETCD】ETCD常用命令
网络·数据库·云原生·oracle·自动化·运维开发·etcd
咖啡教室4 小时前
每日一个计算机小知识:ICMP
后端·网络协议
张人玉4 小时前
网络通讯TCP和UDP的区别
网络协议·tcp/ip·udp
独行soc4 小时前
2025年渗透测试面试题总结-234(题目+回答)
网络·python·安全·web安全·渗透测试·1024程序员节·安全狮
咖啡教室4 小时前
每日一个计算机小知识:IGMP
后端·网络协议
上海云盾安全满满5 小时前
APP应用怎么选择游戏盾
网络·游戏
打不了嗝 ᥬ᭄5 小时前
数据链路层
linux·网络·网络协议·http
Fanmeang6 小时前
无线交换机(AC)核心技术详解:构建集中式Wi-Fi网络的基石
网络
。puppy7 小时前
下一跳(Next Hop):网络转发的 “关键一步”
网络