cookie

HTTP协议请求

Deadly 提交于 2020-01-30 06:26:10
转: http://www.cnblogs.com/hanyinglong/archive/2012/10/29/2745345.html 前言:这几天在学习HTTP协议的请求响应等知识点,使我也慢慢地了解了HTTP协议,以前写网站的时候根本不考虑这些,也就是所谓的”托控件”,这几天学习了这些知识点感觉真的是一个提升,由于我比较笨,所以写个笔记记录一下,要是以后忘了可以再研究研究。顺便也共享一下,可能有错误,希望大家能够指出来。 1. 什么是浏览器? 什么是服务器?   (1)我们一直在浏览网页,比如我们去博客园 www.cnblogs.com ,那么我们知道当我们输入这段网址的时候我们的浏览器以及服务器做了什么吗?下面简单的看一下这张图:      (2)当我们在浏览器中输入: http://127.0.0.1:8080/proscenium/ 的时候,浏览器请求后台服务器,后台服务器会返回给我们一个网页,那么后台服务器到底干了什么呢?我们可以使用Chrome,IE自带的开发者人员工具,或者DebugBur,Fiddler,和HttpWatch查看,下面就是我查看的网站的访问记录        注解:当我们输入网址回车的时候,浏览器自动的将我们请求的地址封装成了HTTP报文,HTTP报文就是一串字符串,而后通过Socket发送到服务器对应的IP和端口上去,请求的报文格式如下:  

【爬虫学习笔记day07】1.5. Requests深入+基本POST请求(data参数)+代理(proxies参数)+私密代理验证(特定格式) 和 Web客户端验证(auth 参数)+Cookies

▼魔方 西西 提交于 2020-01-30 02:54:12
文章目录 1.5. Requests深入 基本POST请求(data参数) 1. 最基本post方法 2. 传入data数据 代理(proxies参数) 私密代理验证(特定格式) 和 Web客户端验证(auth 参数) 私密代理 web客户端验证 Cookies 和 Sission Cookies session 实现人人网登录 处理HTTPS请求 SSL证书验证 1.5. Requests深入 基本POST请求(data参数) 1. 最基本post方法 response = requests . post ( "http://www.baidu.com/" , data = data ) 2. 传入data数据 对于 POST 请求来说,我们一般需要为它增加一些参数。那么最基本的传参方法可以利用 data 这个参数。 import requests formdata = { "type" : "AUTO" , "i" : "i love python" , "doctype" : "json" , "xmlVersion" : "1.8" , "keyfrom" : "fanyi.web" , "ue" : "UTF-8" , "action" : "FY_BY_ENTER" , "typoResult" : "true" } url = "http://fanyi.youdao

API安全(十)-登陆

大憨熊 提交于 2020-01-30 02:11:44
1、登陆    在前面,我们把图上常见的安全机制都做了一个简单的实现,但是登陆并没有在图中体现,因为并不是每次调用API的时候都需要登陆;登陆只是一个偶尔发生的事情,并不像图中的机制,每一次API的调用都贯穿在其中。但登陆也是整个安全机制中,重要的一环。 2、之前认证中(HttpBasic)存在的缺陷    在前面我们实现的HttpBasic认证逻辑中,每次客户端发请求的时候都要把用户的用户名密码通过base64加密传上来,这样有以下缺点:      2.1、不安全,每次请求都要带用户名和密码,增加了用户名密码泄漏的风险      2.2、每一次传上来用户名和密码以后都要去做check,加密算法校验比较消耗系统资源 3、基于token的身份认证    对于上面的问题,我们可以采用基于token的身份认证,流程如下图;   这样做的好处是:token跟用户名密码是有关联的,但不是直接的关联,从token中没有办法解析出用户名和密码的。不用每次都传用户名和密码,token在服务器端有一个存储,服务器端从客户端拿到token以后,查一下存储中是否存在,就知道用户是否登陆了,不用像之前那样每次请求都要做密码比对。 4、基于cookie和session的实现    对于基于token的身份认证实现有很多,对于java来说最常见的就是基于cookie和session的实现,流程如下图

HTTP协议各个参数详解

半世苍凉 提交于 2020-01-30 01:55:55
HTTP消息是由普通ASCII文本组成。消息包括消息头和数据体部分。消息头以行为单位,每行以CRLF(回车和换行)结束,消息头结束后,额外增加一个CRLF,之后内容就是数据体部分了。 http请求: 实例如下: GET/sample.jspHTTP/1.1 Accept:image/gif.image/jpeg,*/* Accept-Language:zh-cn Connection:Keep-Alive Host:localhost User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0) Accept-Encoding:gzip,deflate username=jinqiao&password=1234 请求方式(RequestMethod): OPTIONS、 GET、 HEAD、POST、PUT、DELETE、TRACE和CONNECT。 GET 请求获取Request-URI所标识的资源 POST 在Request-URI所标识的资源后附加新的数据 HEAD 请求获取由Request-URI所标识的资源的响应消息报头 PUT 请求服务器存储一个资源,并用Request-URI作为其标识 DELETE 请求服务器删除Request-URI所标识的资源 TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断

购物车

南笙酒味 提交于 2020-01-30 01:06:32
1.介绍 1. 购物车在不登陆的情况下,也可以使用 需要引入浏览器cookie的操作 2. 购物车在登陆情况下,需要使用Redis和MySQL来存储数据 Redis作为购物车缓存 3. 在缓存情况下,或者用户添加购物车后,允许购物车中的数据和原始数据的不一致 4. 购物车同步问题 什么时候同步 ( 结算、登陆 ) 同步购物车后,是否删除cookie数据 5. 用户在不同客户端同时登陆 如何处理购物车数据`在这里插入代码片 2购物车添加功能 1. 传递参数 ( 商品skuId , 添加数量 ) 2. 根据skuId调用skuService查询商品信息 3. 将商品详细信息分装成购物车信息 4. 判断用户是否登陆 5. 根据用户登陆决定走cookie的分支还是db 购物车数据写入 Cookie : response . addCookie ( cookie ) ; request . getCookies ( ) ; Cookie的跨越问题 setDomain ( ) , getDomain ( ) Db 来源: CSDN 作者: SuperstarSteven 链接: https://blog.csdn.net/SuperstarSteven/article/details/104101011

Cookie&Session会话技术

我的梦境 提交于 2020-01-30 00:19:35
Cookie&Session会话技术 一.会话技术 1) 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会话技术就是记录这次会话中客户端的状态与数据的。 2)会话技术分为Cookie和Session: Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie; Session:将数据存储到服务器端,安全性相对好,增加服务器的压力; 二、Cookie技术 1.服务器端向客户端发送一个Cookie 1)创建Cookie: Cookie cookie = new Cookie(String cookieName,String cookieValue); 注意:Cookie中不能存储中文 。 2)设置Cookie在客户端的持久化时间: cookie.setMaxAge(int seconds); ---时间秒 注意:如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭 cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里 3)设置Cookie的携带路径: cookie.setPath(String path); 注意:如果不设置携带路径,那么该cookie信息会在访问产生该cookie的 web资源所在的路径都携带cookie信息 4

Nightmare中文文档(机器翻译)

你离开我真会死。 提交于 2020-01-29 23:47:45
Nightmare Nightmare is a high-level browser automation library from Segment . The goal is to expose a few simple methods that mimic user actions (like goto , type and click ), with an API that feels synchronous for each block of scripting, rather than deeply nested callbacks. It was originally designed for automating tasks across sites that don't have APIs, but is most often used for UI testing and crawling. Under the covers it uses Electron , which is similar to PhantomJS but roughly twice as fast and more modern. ⚠️ Security Warning: We've implemented many of the security recommendations

session 对新开窗口无效

混江龙づ霸主 提交于 2020-01-29 12:44:07
出现问题 : session 对新开窗口无效。当你登录成功后,重新启动另一个新的窗口,发现你还得重新登录! 解决方法 : 用cookie,但是要给cookie加个过期时间,否则你在新开的窗口中仍然得不到这个值。不要忘了,session可是和cookie有着关系的。 相关知识 :(以下为引用) session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。 保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发挥给服务器。一般这个cookie的名字都是类似于SEEESIONID,而

黑客攻防技术宝典Web实战篇(二)工具篇DVWA Web漏洞学习

▼魔方 西西 提交于 2020-01-29 12:39:40
DVWA是一个学习Web漏洞的很好的工具。 DVWA全程是Damn Vulnerable Web Application,还有一个跟它一样好的工具尽在http://www.360doc.com/content/13/0614/22/11029609_292922372.shtml 下载地址 : http://www.dvwa.co.uk/ 安装教程 : http://www.cnblogs.com/yaochc/p/5049832.html 声明: 下面的示例都是在DVWA Security为 Low 时发生的。 1 Brute Force 暴力破解,由于用户名和密码比较简单,又没有验证码,因此很容易被暴力破解,暴力破解工具有WebCruiser/Bruter/burpsuite(收费,免费版里没有这个功能) WebCruiser ,先请求然后被他拦截后,执行resend,然后利用bruter进行破解。 Bruter ,直接进行暴力破解,当然需要配置一些参数。 burpsuite ,利用burpsuite的intrude可以执行暴力破解。 经暴力破解后得到的密码是admin/password,跟DVWA的登陆密码是一样的。 界面如下: 登陆的界面如下: 2 Command injection 命令注入或命令执行漏洞,原本系统要执行ping ip的命令,

Django视图

和自甴很熟 提交于 2020-01-29 11:24:30
Django中视图的功能: 接收请求,进行处理,与M和T进行交互,返回应答 返回html内容HttpResponse、重定向页面redirect、json数据及异常等 1. 视图函数 定义视图函数:参数:request(必须),返回一个HttpResponse类型的对象或者HTTP404异常(参数名可以自定义不建议修改) URL配置:建立URL与视图函数之间的对应关系 URL配置 在项目的urls文件中包含具体应用的urls文件,在具体应用的urls文件中包含具体url和视图的对应关系 url配置项定义在一个名叫urlpatterns的列表中,其中的每一个元素就是一个配置项,每一个配置项都调用url函数(高版本使用path、re_path函数) url匹配过程: 注意: 匹配成功调用视图函数产生内容返回客户端,匹配失败产生404异常 不能在开始加反斜杠,推荐在结束加反斜杠 内置错误视图 404:找不到页面(请求的URL没有配置或者配置错误) - 关闭调试模式之后,默认会显示一个标准的错误页面,如果要显示自定义的页面,则需要的templates目录下面自定义一个404.html文件 - 默认情况下Django会向404.html文件传递一个参数:request_path(请求的路径) 500:服务器端错误(视图函数内部执行出错) - 默认会显示一个标准的500服务器错误页面