HTTP——Cookie

HTTP——Cookie

  • 什么是Cookie
  • 通过Cookie访问网站

我们之前了解了HTTP协议,如果还有小伙伴还不清楚HTTP协议,可以点击这里:

https://blog.csdn.net/qq_67693066/article/details/136895597

我们今天来稍微了解一下HTTP里面一个很小的部分:Cookie

什么是Cookie

Cookie是一种小型的文本文件,由网站服务器发送到用户的浏览器,并存储在用户的计算机上。它包含着网站的相关信息,如用户的偏好设置、登录状态等。
Cookie的组成包括一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性。Cookie的尺寸通常不超过4KB。
Cookie的工作原理是,当用户访问一个网站时,网站服务器会在HTTP响应头中添加一个Set-Cookie标头,其中包含了Cookie的信息。浏览器接收到响应后,会将这些Cookie保存在本地。之后,当用户再次访问该网站时,浏览器会在HTTP请求头中添加一个Cookie标头,将之前存储的Cookie信息发送给服务器。服务器通过解析这些Cookie信息,可以获取用户的状态、偏好等信息。
Cookie的发明可以追溯到1994年,由网景公司的程序员Lou Montulli发明。他为了解决HTTP协议无状态的限制而创建了Cookie,以便在用户和网站之间共享信息。
Cookie的主要作用包括跟踪用户行为、保存用户状态、记录用户偏好、实现购物车功能等。它广泛应用于登录状态管理、个性化内容推荐、购物体验改善、广告投放以及网站流量分析等领域。

比如我现在在写博客,如果我们是第一次打开这个网页,我们可以打开浏览器的检查功能,找到“网络”,然后点进去一个GET请求:
在这里插入图片描述

关闭再次打开,这个时候我们可以再次点击检查,再次查看请求头:
在这里插入图片描述
这个时候我们的浏览器就有了Cookie,这个Cookie帮我们存储了一些信息:

在这个Cookie字符串中,有几个重要的字段。以下是这些字段的详细解释:

  1. uuid_tt_dd:这个字段表示用户的唯一标识符。它通常用于跟踪用户的活动和会话。在这个例子中,uuid_tt_dd的值是10_6637840340-1670159414905-338951
  2. log_Id_pv:这个字段表示页面浏览次数。它用于记录用户在网站上浏览的页面数量。在这个例子中,log_Id_pv的值是587
  3. Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac:这个字段是一个用于跟踪用户访问网站的时间戳。它通常用于分析用户在网站上的停留时间和访问模式。在这个例子中,Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac的值是1711556895,1711576221,1711577673,1711578178
  4. Hm_up_6bcd52f51e9b3dce32bec4a3997715ac:这个字段包含了用户的一些属性,如是否登录、是否在线、是否是VIP等。这些属性通常用于个性化推荐和用户分析。在这个例子中,Hm_up_6bcd52f51e9b3dce32bec4a3997715ac的值是%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22qq_67693066%22%2C%22scope%22%3A1%7D%7D
  5. dc_sid:这个字段表示用户的会话ID。它通常用于跟踪用户的会话状态和身份验证。在这个例子中,dc_sid的值是6d962e108e2c139d8e435550a8a4d5c3

这些字段只是Cookie字符串中的一部分,实际上还有其他字段。这些字段通常用于跟踪用户的行为、分析用户的兴趣和偏好,以及提供个性化的服务。

通过Cookie访问网站

我们这里通过Cookie来访问香港的淘宝,进入淘宝(香港版):
在这里插入图片描述
将Cookie的文本内容存放在txt文件中,这里我保存在桌面上:
在这里插入图片描述
然后在pycharm中编写以下代码:

import requests
from urllib.parse import unquote
import urllib.parse# 打开txt文件并读取内容
url = 'https://world.taobao.com/?spm=a2141.241046-hk.logo.1.41ca5adbDMl5rh' # 香港淘宝地址
with open('C:\\Users\\luoshui\\Desktop\\cookie.txt','r',encoding='utf-8') as file:cookie_str = file.read().strip()  # 读取内容并去除两端的空白字符decoded_cookie_str = unquote(cookie_str)# 使用分号将字符串分割成单独的Cookie
decoded_cookie_str = decoded_cookie_str.split(';')# 创建一个字典来存储Cookie键值对
cookies_dict = {}# 遍历分割后的Cookie列表,并添加到字典中
for cookie in decoded_cookie_str:# 去除每个Cookie两端的空格,并使用等号分割键和值key, value = cookie.strip().split('=', 1)# 在循环内解码值value = urllib.parse.quote(value.encode('utf-8'))# 将Cookie添加到字典中cookies_dict[key] = value# 打印分割后的Cookie字典
print(cookies_dict)# 发起请求
response = requests.get(url, cookies= cookies_dict)# 检查请求是否成功
if response.status_code == 200:# 请求成功,可以处理响应内容print("请求成功!")print(response.text)  # 打印网页的HTML内容
else:# 请求失败,打印错误信息print(f"请求失败,状态码:{response.status_code}")

运行:
在这里插入图片描述
点击url:
在这里插入图片描述
在这里插入图片描述
我们还可以切换地址到韩国,访问韩国的淘宝(把url地址换为韩国的,同时cookie也换成韩国的):

import requests
from urllib.parse import unquote
import urllib.parse# 打开txt文件并读取内容
url = 'https://world.taobao.com/?spm=a2141.241046-kr.logo.1.41ca5adbMdFW4f' # 地址换为韩国的
with open('C:\\Users\\luoshui\\Desktop\\cookie.txt','r',encoding='utf-8') as file:cookie_str = file.read().strip()  # 读取内容并去除两端的空白字符decoded_cookie_str = unquote(cookie_str)# 使用分号将字符串分割成单独的Cookie
decoded_cookie_str = decoded_cookie_str.split(';')# 创建一个字典来存储Cookie键值对
cookies_dict = {}# 遍历分割后的Cookie列表,并添加到字典中
for cookie in decoded_cookie_str:# 去除每个Cookie两端的空格,并使用等号分割键和值key, value = cookie.strip().split('=', 1)# 在循环内解码值value = urllib.parse.quote(value.encode('utf-8')).replace('%3B', ';').replace('%3D', '=')# 将Cookie添加到字典中cookies_dict[key] = value# 打印分割后的Cookie字典
print(cookies_dict)# 发起请求
response = requests.get(url, cookies= cookies_dict)# 检查请求是否成功
if response.status_code == 200:# 请求成功,可以处理响应内容print("请求成功!")print(response.text)  # 打印网页的HTML内容
else:# 请求失败,打印错误信息print(f"请求失败,状态码:{response.status_code}")

在这里插入图片描述
如果不行,大家记得点一下“淘宝”旁边的名字:
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2905748.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

解决“Pycharm中Matplotlib图像不弹出独立的显示窗口”问题

matplotlib的绘图的结果默认显示在SciView窗口中, 而不是弹出独立的窗口, 这样看起来就不是很舒服,不习惯。 通过修改设置,改成独立弹出的窗口。 File—>Settings—>Tools—>Python Scientific—>Show plots in toolwindow 将√去掉即可

Github多账号共存

在开发阶段,如果同时拥有多个开源代码托管平台的账户,在代码的管理上非常麻烦。那么,如果同一台机器上需要配置多个账户,怎样才能确保不冲突,不同账户独立下载独立提交呢? 我们以两个github账号进行演示 …

密码学基础-对称密码/公钥密码/混合密码系统 详解

密码学基础-对称密码/公钥密码 加解密说明1.加密解密必要因素加密安全性说明 什么是对称密码图示说明对称密码详解什么是DES?举例说明 什么是3DES什么是AES? 公钥密码什么是RSA? 对称密钥和公钥密码优缺点对比对称密码对称密码算法总结对称密码存在的问题? 公钥密码公钥密码…

工业镜头常用参数之实效F(Fno.)和像圈

Fno. 工业镜头中常用到的参数F,有时候用F/#,Fno.来表示,指的是镜头通光能力的参数。它可用镜头焦距及入瞳直径来表示,也可通过镜头数值孔径(NA)和光学放大倍率(β)来计算。有效Fno.…

linux系统装载nginx的笔记

作为一个前端开发,自己部署一个前端项目是不是很正常的事情,所以我在这里记录一下自己在linux环境中通过nginx部署前端项目的步骤,方便后面查看。 步骤如下: 1、使用管理员身份进入命令窗口,如果进入时提示&#xff0…

使用苹果应用商店上架工具实现应用快速审核与发布

摘要 移动应用app上架是开发者关注的重要环节,但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作,各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用,最终指出合理使用工具的重要性。 引言 移动应…

阳光倒灌高准直汽车抬头显示器HUD太阳光模拟器

阳光倒灌高准直汽车抬头显示器HUD太阳光模拟器是一种高级别的模拟设备,用于模拟太阳光的光谱、强度及照射角度,应用于太阳能电池板、光伏系统等领域的研究和测试。其参数包括光谱范围、光强度、光源、照射角度、均匀性和稳定性,可根据需求调整…

2024最新彩虹知识付费模板MangoA全开源包含秒杀/抽奖/社群/推送等功能

二次开发增加以下功能每日秒杀每日签到官方社群多级分销在线抽奖项目投稿 每日秒杀 每日签到 官方社群 多级分销 在线抽奖 项目投稿 源码下载:https://download.csdn.net/download/m0_66047725/88963704 更多资源下载:关注我。

应急响应靶机训练-Linux1题解

前言 接上文,应急响应靶机训练Linux1 靶机地址: 应急响应靶机-Linux(1) 最近感冒了,就没录视频版。 题解 目标:3个flag以及黑客的ip地址 登陆虚拟机 密码defend flag1: su history flag{thisismybaby} flag2:…

【学习】软件企业何时会选择第三方软件测试机构

近年来,随着软件行业的迅猛发展,软件企业对软件测试的需求也越来越大。为了保证软件的质量和稳定性,许多企业选择寻找第三方软件测试机构来进行软件测试。第三方软件测试机构是独立于软开发企业的专业机构,主要从事软件测试和质量…

OpenGL 实现“人像背景虚化“效果

手机上的人像模式,也被人们称作“背景虚化”或 ”双摄虚化“ 模式,也称为 Bokeh 模式,能够在保持画面中指定的人或物体清晰的同时,将其他的背景模糊掉。突出画面的主体部分,主观上美感更强烈。 人像模式的一般实现原理是,利用双摄系统获取景深信息,并通过深度传感器和图…

Vivado Lab Edition

Vivado Lab Edition 是完整版 Vivado Design Suite 的独立安装版本 , 包含在生成比特流后对赛灵思 FPGA 进行编程和 调试所需的所有功能。通常适用于在如下实验室环境内进行编程和调试: 实验室环境中的机器所含磁盘空间、内存和连 接资源较少。Vivad…

Android Studio控制台输出中文乱码问题

控制台乱码现象 安卓在调试阶段,需要查看app运行时的输出信息、出错提示信息。 乱码,会极大的阻碍开发者前进的信心,不能及时的根据提示信息定位问题,因此我们需要查看没有乱码的打印信息。 解决步骤: step1: 找到st…

C# OpenCvSharp MatchTemplate 多目标匹配

目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using O…

主流公链 - Monero

Monero: 加密货币的隐私标杆 1. 简介 Monero(XMR),世界语中货币的意思,是一种去中心化的加密货币,旨在提供隐私和匿名性。与比特币等公开区块链不同,Monero专注于隐私保护,使用户的交易记录和余…

政安晨:专栏目录【TensorFlow与Keras实战演绎机器学习】

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 本篇是作者政安晨的专栏《TensorFlow与Keras…

抖音视频关键词无水印下载软件|手机网页视频批量提取工具

全新视频关键词无水印下载软件,助您快速获取所需视频! 随着时代的发展,视频内容已成为人们获取信息和娱乐的重要途径。为了方便用户获取所需视频,推出了一款功能强大的视频关键词无水印下载软件。该软件主要功能包括关键词批量提取…

git基本操作(小白入门快速上手一)

1、前言 我们接上一篇文章来讲,直接开干 1.1、工作区 1. 工作区很好理解,就是我们能看到的工作目录,就是本地的文件夹。 2. 这些本地的文件夹我们要通过 git add 命令先将他们添加到暂存区中。 3. git commit 命令则可以将暂存区中的文件提交…

【01-20】操作系统基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【01-20】操作系统基础知识(非常详细)从零基础入门到精通,看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用1、进程、线程和协程的区别和联系2、线程与进程的比较2.1、补充另一种问法 3、一个进程可以创建多少…