cookie

HTTP协议

随声附和 提交于 2019-12-20 11:34:08
一 HTTP概述 HTTP即超文本传输协议。这个协议 详细规定了浏览器和万维网服务器之间互相通信的规则。 HTTP 就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。其实我们要学习的就是这个两个格式!客户端发送给服务器的格式叫 “ 请求协议 ” ;服务器发送给客户端的格式叫 “ 响应协议 ” 。 特点: HTTP叫超文本传输协议,基于请求/响应模式的! HTTP是无状态协议。 URL :统一资源定位符,就是一个网址: 协议名 :// 域名 : 端口 / 路径,http://www.baidu.com/ 二 请求协议 请求协议的格式如下: 请求首行; // 请求方式 请求路径 协议和版本,例如:GET /index.html HTTP/1.1 请求头信息;// 请求头名称:请求头内容,即为key:value格式,例如:Host:localhost 空行; // 用来与请求体分隔开 请求体。 // GET没有请求体,只有POST有请求体。 浏览器发送给服务器的内容就这个格式的,如果不是这个格式服务器将无法解读!在 HTTP 协议中,请求有很多请求方法,其中最为常用的就是 GET 和 POST 。不同的请求方法之间的区别,后面会一点一点的介绍。 2.1   GET 请求 HTTP默认的请求方法就是GET * 没有请求体 *

http及浏览器相关知识点归纳

走远了吗. 提交于 2019-12-20 10:27:06
http是应用层协议,采用请求/响应模型 1、浏览器地址栏输入URL地址后发生了什么? 浏览器判断地址是否是合理的URL地址,是否是http协议请求,如果是则进入下一步 浏览器对此URL进行缓存检查:如果存在缓存则从本地提取文件(from memory cache,返回200),如果缓存过期或缓存不存在,则发起远程请求 向DNS服务器发送请求,解析URL对应的IP地址 客户端根据IP地址,连同cookie、userAgent等信息向web服务器发送请求,经过三次握手建立TCP连接 客户端向服务器端发送http请求,该请求作为TCP三次握手的第三个报文的数据发送给服务器 ngnix根据URL做服务分发,分发到后端服务器或者是静态资源服务器, 首屏请求一般是分发到静态服务器返回一个html 服务器端处理请求返回http响应报文,如果浏览器访问过该页面,缓存上有对应的资源,与服务器最后修改记录对比,一致返回304,否则返回200和对应资源 如果是200无缓存,则浏览器接收到信息并开始下载该html文件;如果是304有缓存,则浏览器从本地提取文件 释放TCP连接 浏览器解析该html文本并显示内容,同时使用和设置缓存 补充: 浏览器渲染引擎工作流程: 解析html构建DOM树时,渲染引擎会将html文件的标签元素解析成多个DOM元素对象节点,并且将这些节点根据父子关系组成一个树结构

《图解Http》阅读笔记——2.简单的HTTP协议

本小妞迷上赌 提交于 2019-12-20 07:15:04
《图解Http》阅读笔记——2.简单的HTTP协议 2.1 HTTP 协议用于客户端和服务器端之间的通信 HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同,用于客户端和 服务器之间的通信。 请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一 端称为服务器端。 在两台计算机之间使用 HTTP 协议通信时,在一条通信线路上必定有 一端是客户端,另一端则是服务器端。 有时候,按实际情况,两台计算机作为客户端和服务器端的角色有可 能会互换。但就仅从一条通信路线来说,服务器端和客户端的角色是 确定的,而用 HTTP 协议能够明确区分哪端是客户端,哪端是服务器 端。 2.2 通过请求和响应的交换达成通信 HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返 回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有 接收到请求之前不会发送响应。 下面,我们来看一个具体的示例。 下面则是从客户端发送给某个 HTTP 服务器端的请求报文中的内容。 GET /index.htm HTTP/1.1 Host: hackr.jp 起始行开头的GET表示请求访问服务器的类型,称为方法 (method)。随后的字符串 /index.htm 指明了请求访问的资源对象, 也叫做请求 URI(request-URI)。最后的 HTTP/1.1,即 HTTP 的版本 号

Docker环境下的前后端分离项目部署与运维(八)使用Docker部署RabbitMQ集群

旧城冷巷雨未停 提交于 2019-12-20 06:49:17
下载RabbitMQ镜像 镜像地址 RabbitMQ Docker官方认证镜像地址: https://hub.docker.com/_/rabbitmq 安装命令 安装之前,切记把Docker Hub设置为阿里云的加速,方便安装。 docker pull rabbitmq:3.7.14-management 注意使用后缀为"-management"的镜像版本,是包含网页控制台的。 查看安装 使用命令:docker images查看下载的镜像,如下图所示: 启动RabbitMQ docker run -d --hostname localhost --name myrabbit -p 15672:15672 -p 5672:5672 rabbitmq:3.7.14-management 参数说明: -d 后台进程运行 --hostname RabbitMQ主机名称 --name 容器名称 -p port:port 本地端口:容器端口 -p 15672:15672 http访问端口 -p 5672:5672 amqp访问端口 启动完成之后,使用:docker ps 查看程序运行情况。 使用:http://宿主ip:15672 访问,用户名密码使用默认:guest/guest. 启动多个RabbitMQ docker run -d --hostname localhost --name

ASP.NET 中,关于Session经常莫名其妙丢失的总结

无人久伴 提交于 2019-12-20 05:46:23
ASP.NET 中,关于Session经常莫名其妙丢失的总结 在ASP.Net开发中,经常会遇到关于SESSION经常奇怪丢失的问题。查阅了很多资料,对于具体什么原因,到现在仍无了解其深意。连微软也没有十足的把握。 在没有了解深意的情况下,本人总结了几个注意点: 1.尽量不要使用框架frame,本人在开发过程中,在有框架的程序中,经常会发生丢失;没有框架,这种情况几乎没有发生过; 2.部署ASP.NET程序的主机服务器的名称中不能存在下划线“_”。具体原因不清楚,在寻求微软技术支持后,是微软工程师告知。 3.可以在web.config中,设置 SessionState 中,将 mode="InProc" 设置成 mode="stateServer",开启 ASP.NET State Service的服务, 可防止SESSION 丢失。但有些虚拟主机,可能没开启此服务。 4.根据数据内容,尽量考虑使用Cookie来保持维护状态。 5.用 数据库 引文 http://www.bullnet.cn/blog/index.asp 相关参考 http://dev2dev.bea.com.cn/bbs/jishudata/ArticleShow.jsp?Id=10 session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

Django之视图

試著忘記壹切 提交于 2019-12-20 03:19:24
Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。 代码写在哪里也无所谓,只要它在你当前项目目录下面。 除此之外没有更多的要求了——可以说“没有什么神奇的地方”。 为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为 views.py 的文件中。 一个简单的视图 下面是一个以HTML文档的形式返回当前日期和时间的视图: from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) 让我们来逐行解释下上面的代码: 首先,我们从 django.http 模块导入了 HttpResponse 类,以及Python的 datetime 库。 接着,我们定义了 current_datetime 函数。

Java EE会话技术Cookie和Session

蹲街弑〆低调 提交于 2019-12-20 02:45:08
会话技术 一、定义 会话技术是帮助服务器记住客户端状态的(区分客户端的)。将客户访问的信息存在本地的叫Cookie技术,存在服务器上的叫Session技术。 注意: 一次会话何时开始?从打开一个浏览器访问某个站点时开始 一次会话何时结束?到关闭这个浏览器的时候结束。而不是关掉某个站点时 Cookie和Session的区别 Cookie:数据存储在客户端本地,减少服务器端的存储压力,但是安全性不好,客户端可以清除Cookie Session:将数据存储到服务器端,安全性相对较好,但是增加了服务器的压力 二、Cookie技术 学习分为两个方面 服务器端怎样将一个cookie发送到客户端 服务器端如何接收客户端携带的cookie //1创建cookie对象,cookie不能存中文,只能存储非中文字符串 Cookie cookie = new Cookie("name", "zhangsan"); //2以头的形式将cookie中的信息发送到客户端 response.addCookie(cookie); 默认Cookie的级别是会话级别,即关掉浏览器,缓存的东西就被清除。那么如何让cookie持久化呢? 如果访问每一个网页都带着cookie,这会增加响应时间。因此我们应该为cookie指定访问哪些资源时需要携带的路径。 注意:如果不设置携带路径

Cookie、Session和Web Storage

别等时光非礼了梦想. 提交于 2019-12-20 01:44:05
Cookie 工作原理 : 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了 cookie设置 document.cookie="userName=才华有限公司"; cookie获取 let userName = getCookie('userName');//才华有限公司 function getCookie(cookie_name) { var allcookies = document.cookie; //索引长度,开始索引的位置 var cookie_pos = allcookies.indexOf(cookie_name); // 如果找到了索引,就代表cookie存在,否则不存在 if (cookie_pos != -1) { // 把cookie_pos放在值的开始,只要给值加1即可 //计算取cookie值得开始索引,加的1为“=” cookie_pos = cookie_pos + cookie_name.length + 1; //计算取cookie值得结束索引 var cookie_end = allcookies.indexOf(";", cookie_pos); if (cookie_end == -1) {

十二 web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

痞子三分冷 提交于 2019-12-20 01:22:51
模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url、cookie、回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其他参数,cookie、url、表单内容等 yield Request()可以将一个新的请求返回给爬虫执行 在发送请求时cookie的操作, meta={'cookiejar':1}表示开启cookie记录,首次请求时写在Request()里 meta={'cookiejar':response.meta['cookiejar']}表示使用上一次response的cookie,写在FormRequest.from_response()里post授权 meta={'cookiejar':True}表示使用授权后的cookie访问需要登录查看的页面 获取 Scrapy框架Cookies 请求Cookie Cookie = response.request.headers.getlist('Cookie') print(Cookie) 响应Cookie Cookie2 =

Scrapy中使用cookie免于验证登录和模拟登录

好久不见. 提交于 2019-12-20 01:22:17
原文:https://blog.csdn.net/qq_34162294/article/details/72353397 Scrapy中使用cookie免于验证登录和模拟登录 引言 python爬虫我认为最困难的问题一个是ip代理,另外一个就是模拟登录了,更操蛋的就是模拟登录了之后还有验证码,真的是不让人省心,不过既然有了反爬虫,那么就有反反爬虫的策略,这里就先介绍一个cookie模拟登陆,后续还有seleminum+phantomjs模拟浏览器登录的文章。还不知道cookie是什么朋友们,可以点击这里 cookie提取方法: 打开谷歌浏览器或者火狐浏览器,如果是谷歌浏览器的按F12这个键就会跳出来浏览器控制台,然后点击Network,之后就是刷新网页开始抓包了,之后在抓到的页面中随便打开一个,就能看到cokie了,但是这里的cookie并不符合python中的格式,因此需要转换格式,下面提供了转换的代码 # -*- coding: utf-8 -*- class transCookie: def __init__(self, cookie): self.cookie = cookie def stringToDict(self): ''' 将从浏览器上Copy来的cookie字符串转化为Scrapy能使用的Dict :return: ''' itemDict = {}