
http/https
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
-
HTTP笔记-浏览器是如何识别点击的链接是下载文件还是展示页面
使用Fiddler的断点功能可以很好的观察这一现象。当鼠标点击一个URL下载数据时,回的数据包是这样的:其中最关键的回包是Content-Type: application/msword,这个msword全称是Microsoft Word,当使用Fiddler断点功能设置After Responses将Content-Type: application/msword改为Content-Type: text/html浏览器就识别不了了。就直接把这些数据打印到页面上了,.原创 2021-12-21 08:49:51 · 1765 阅读 · 0 评论 -
HTTPS|SSL笔记-SSL分手过程(Encrypted Alert)
目前在做一个多线程Restful风格的Web服务器。以前只分析了握手过程,今天来看下分手过程。服务端端口:18888客户端端口:53532框起来的那个是SSL分手的2个包,后面4个是TCP分手的包。来看下Encrypted Alert代码里面是,服务端发完数据后,提交分手服务端发送Encrypted Alert,告知客户端要断开连接了,你要准备好。然后客户端就回复ACK。最后就是TCP三次分手。...原创 2021-10-12 08:47:24 · 18730 阅读 · 3 评论 -
Java笔记-解决SSLHandshakeException: No subject alternative names present
我这边是这样出现的问题,做了一个双向认证的WebService,证书是用keytools做的自签名,其中cn为localhost。在外网测试的时候,客户端检测自己的证书不通过。百度没有找到决解的办法,最后去外网看了,用了洋人的方法解决的。在此记录下。在自己的代码中,需要连接网络的地方添加如下静态函数:static { HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { .原创 2020-09-15 08:36:14 · 2482 阅读 · 0 评论 -
Java笔记-Spring Boot SSL(https)实例
此篇博文记录了在web程序中使用自签名的SSL(HTTPS)证书及创建SSL认证。SSL关键的配置Spring Boot中HTTPS的配置(application.properties)server.port=8443server.ssl.key-alias=selfsigned_localhost_sslserverserver.ssl.key-password=changeitserver.ssl.key-store=classpath:ssl-server.jksserve.原创 2020-08-27 08:32:24 · 2161 阅读 · 0 评论 -
Java笔记-构造RESTful的WebService
Spring Boot提供了企业级构建RESTful的webService应用Maven添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>整个porn.xml如下:<?xml version = "原创 2020-08-26 09:42:07 · 703 阅读 · 0 评论 -
Java笔记-为客户端及服务端创建公私钥的密钥库
使用密钥库使得客户端与服务器之间进行安全的通信,通过下面的方式生成公钥私钥库:1. 创建client及server的keystore。2. 从keystore中导出certificate。3. 将client的certificate导入到server的keystore,将server的certificate导入到client的keystore。生成客户端及服务端的keystore下面这个命令生成2048位的RSA key有效期为365天并且别名为server,这些数据都存储到ser.原创 2020-08-26 09:24:13 · 1446 阅读 · 0 评论 -
Java笔记-keytool生成SSL双向证书
逻辑是这样的:如果要将其导出成client_trust.jks文件,对应的客户端命令为:@echo onkeytool -genkeypair -keyalg RSA -dname "CN=localhost" -alias client -keystore client.jks -keypass cccccc -storepass cccccckeytool -exportcert -file client.cer -alias client -keystore client.jks原创 2020-08-18 09:50:24 · 866 阅读 · 0 评论 -
HTTPS-客户端与服务器三次握手过程(含wireshark分析)
流程是这个样子的大体流程是这样的!客户端生成一个随机数,然后把支持的加密套发给服务器:服务器那边随后生成一个随机数,然后把旋转的加密套给客户端:然后服务器把证书(公钥给客户端):并且告诉客户端Over,也就是对应的Server Ky Exchange, Server Hello Done然后客户端拿着服务器的随机数和证书生成预主密钥发给服务端:然后客户端在给服务端说,我现在准备刚刚商量的进行加密了你接收下(客户端随机数 + 服务端随机数 + 预主密钥 =原创 2020-08-11 08:48:00 · 1363 阅读 · 1 评论 -
Fiddler工具杂记-将某些数据收集起来并且发送HTTP数据包
这里我就直接贴代码了。JScript.net语法 static function OnBeforeResponse(oSession: Session) { if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; ...原创 2020-04-19 23:05:21 · 3429 阅读 · 3 评论 -
Java笔记-解决Required long parameter 'XXX' is not present
Java的controller如下:这里主要的问题是:没有HTTP缺少Content-type及content-length,导致spring boot无法进行解析。添加即可:原创 2020-04-19 22:49:57 · 24987 阅读 · 1 评论 -
Fiddler工具杂记-存储特定的数据包保存到文件(CustomRules.js基本使用)
这里主要的原因是,某些application里面带有某些安全算法,以目前本人的逆向知识很难去破解它。但根据包头有他的运算结果,目前以成功shi'x,在此可以记录下。此篇博文是实现存储包头的过程:首先是配置Fiddler,在文件夹中找到这个FS2.exe记录这个路径在Fiddler中进行配置:在工具选项中进行配置!将FiddlerScript编辑器配置好...原创 2020-04-19 09:32:57 · 4577 阅读 · 0 评论 -
Qt实践|HTTP知识点-使用百度AI语音识别服务
目录基本概念代码与实例基本概念这里来简单介绍下百度的REST API文档,首先是获取Access Token获取到了后,再发送请求,进行语音识别。这里我采用Raw方式上传这个就是百度AI语音识别服务的API,这里我自己录了一段话:注意他的格式和参数代码与实例程序运行截图如下:这个识别还是比较准确的。...原创 2019-08-30 15:55:52 · 5533 阅读 · 0 评论 -
Qt文档阅读笔记-QSslSocket中与错误相关的信号
目录基本概念代码与实例基本概念放代码前先来看这个信号:[signal] void QAbstractSocket::stateChanged(QAbstractSocket::SocketState socketState)当socket状态改变后就会触发这个信息,其中socketState参数为当前socket的状态。这里要注意的是QAbstract...原创 2019-08-30 10:35:14 · 4979 阅读 · 0 评论 -
Qt实践|HTTPS知识点-SSL socket获取百度首页
目录基本概念代码与实例基本概念这里要明确一点,HTTP/HTTPS是应用层协议,而socket一般指TCP/UDP协议,也就是在传输层中,而IP协议是在网络层中!这个实例主要是撸socket,然后手动构造HTTP包,完成应用层的功能。这里使用了C++中的Qt框架代码与实例程序运行截图如下:源码如下:#include <QC...原创 2019-08-29 09:40:06 · 4808 阅读 · 0 评论 -
Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书
目录基本概念代码与实例基本概念这里要先介绍几个类和函数首先是QSslSocket:这个类提供了客户端和服务器之间的SSL加密socket连接。这个是基于TCP连接,可以传输加密数据,支持的协议有SSL3和TLS1.2。通过两种方式建立安全连接,一种是使用即使的SSL握手,一个是延迟SLL握手。在Qt中只要调用connectToHostEncrypted就可以...原创 2019-08-28 16:15:02 · 4589 阅读 · 0 评论 -
Qt实践| HTTP知识点-接入某图片验证码系统识别验证码
目录基本概念代码与实例基本概念这里有一个查询余额的:https://blog.youkuaiyun.com/qq78442761/article/details/100096351下面来看看官方API文档代码与实例成功的实例,Fiddler如下:验证码如下:程序运行截图如下:可见识别成功!源码如下:#include <...原创 2019-08-27 18:22:01 · 4682 阅读 · 0 评论 -
Qt实践| HTTP知识点-接入某图片验证码系统查询余额
目录基本概念代码与实例基本概念这个是接入了某识别验证码系统,这个验证码系统有很多的接口,其中就有VC++接口,但个人觉得,这个接口不太好,因为本人想用C++ Qt框架实现,而这个Qt框架的最大特点就是跨平台,所以本人选择了他的HTTP接口,正巧,自己也在学习HTTP。HTTP的接口使用很频繁,在RabbitMQ中,本人也看到了HTTP接口,写客户端的时候可以直...原创 2019-08-27 11:33:44 · 4389 阅读 · 0 评论 -
Qt实践| HTTP知识点-Qt填充referer请求头盗取图片
目录基本概念代码与实例基本概念HTTP协议头中的Referer主要是用来让服务器判断来源页面,即用户是从那个页面来的。网站通常用其来统计用户来源,看用户是从搜索页面来的,还是从其他网站链接来的。或者是从书签等访问,以便合理的定位网站。Referer有时候也做防盗链处理,即下载时判断来源地址是不是在网站的域名内,否则不能下载或显示,以天涯网为例!如,直接请求...原创 2019-08-23 14:21:20 · 5038 阅读 · 2 评论 -
关于优快云官方对博文点赞漏洞的处理(Cookie劫持攻击)
目录问题描述官方奖励个人看法问题描述最近在学习HTTP知识,发现了优快云的点赞BUG!最近找到了优快云的点赞BUG,如下所示:再来一张图 :最后一张图:这个主要是自己写了一个软件,伪造HTTP封包实现的官方奖励我把这个软件和存在的问题,并且把详细的内容都发给了优快云客服,他们是这么、给我回复的!最后给...原创 2019-08-25 20:48:09 · 4563 阅读 · 2 评论 -
Qt实践| HTTP知识点-Qt抓优快云博文及防优快云反爬虫(思路+代码)
目录Fidder分析HTTP数据包Qt代码思路Fidder分析HTTP数据包首先使用Fidder抓包,可以看见当访问优快云博客的时候,会有2个请求:第一个请求的响应如下:这里我先说明一个地方,就是这个body采用了gzip压缩,他的文件头为1F 8B 08,通过解压就可以得到这个文件。这里是一个很重要的地方,在后面将会单独拿个博文来将,本次博...原创 2019-08-20 22:29:44 · 4975 阅读 · 1 评论 -
Qt实践| HTTP知识点-User-Agent及302暂时重定向实践
目录使用工具分析C++|Qt模拟工具分析使用工具分析这里使用Fidder工具,网站使用天涯网,来研究下302暂时重定向和User-Agent相关的知识。首先打开Fidder,直接访问天涯网,看下访问的原始报文请求和响应:从中可以看到请求头中,包含User-Agent,这个包含了目前我的浏览器和操作系统的信息。这是http包头的的一部分。看下响应,2...原创 2019-08-19 09:13:22 · 6751 阅读 · 0 评论 -
Qt|Http笔记-两种方式发送http协议数据,获取服务器数据(GET方法)
目录 背景演示搭建Java Web环境QTcpSocket获取服务器数据QNetworkAccessManager获取服务器数据 背景Qt中有2个方式可以实现HTTP协议的发送,一个是使用QNetworkAccessManager,这个是非常常见的,另外是使用QTcpSocket自己构造HTTP格式,也是可以的。 演示web程序运行如下:输入...原创 2019-02-21 20:43:23 · 9219 阅读 · 0 评论 -
HTTP协议方法及状态码(HTTP协议入门必备)
目录 基本概念使用telnet演示HEAD方法使用telnet演示TRACE方法使用telnet演示OPTIONS方法HTTP响应中的状态码304响应演示使用telnet演示304响应 基本概念客户端:请求行(请求方法 路径 协议)空行主体信息(可选)(发送内容)如:POST /index.jsp HTTP/1.1Host: lo...原创 2019-02-22 11:27:40 · 4367 阅读 · 1 评论 -
HTTP、HTTPS、SSL、TLS之间的关系
目录 HTTPHTTPSSSLTLS HTTP在标准的HTTP中,所有信息都是以明文发送这里包括所输入的任何文本信息,这些信息都是通过公共的互联网进行传输。 明文传输,因此很容易遭受到黑客的攻击!特别是使用密码,个人信息,啥的,很容易被黑客获取,黑客可以监听到这些正在传输的数据。 这也是HTTPS被发明的原因! HTTPSHTT...原创 2019-02-24 11:05:33 · 7268 阅读 · 1 评论 -
Qt调用face++的http接口,实现人脸对比
目录 概念演示源码 概念Qt中有QNetworkAccessManager、QHttpMultiPart、QJsonArray、QHttpPart,可以实现发送http数据包,其中QNetworkAccessManager中有个函数,可以实现Get或者Post方法。 演示程序运行截图如下:加入图片后,点击提交,可活得face++返回的json数据,其...原创 2019-02-20 09:02:15 · 5018 阅读 · 4 评论 -
C++|Java混合实验-java搭建post方法靶场,Qt发送请求获取数据
目录 背景演示Java web源码Qt源码 背景post方法使用的地方有多,比如各个Http的API,涉及上传文件等,都是要使用post上传,在此模拟下post的表单上传数据的方式。 演示首先是web端的演示:进入PostDemo/index.jsp输入正确的QQ号(如10086后):注意:URL上并没有10086这个数据输...原创 2019-02-13 10:07:05 · 4244 阅读 · 0 评论 -
C++|Java混合实验-java搭建get方法靶场,Qt发送请求获取数据
目录 背景演示java web源码Qt端源码 背景因为最近想进一步学习http协议,想从QNetworkAccessManager中,但访问其他网站获取的数据,太过于复杂,不便于个人的实验,在此,本人使用Java搭建了一个get方法的靶场,来学习QNetworkAccessManager的使用 演示web网站如下:如果输入了正确的QQ号:...原创 2019-02-12 15:11:08 · 4088 阅读 · 0 评论 -
Qt文档阅读笔记-QTcpServer官方解析与实例(使用QSocket创建简单的HTTP服务器)
目录官方解析博主例子(做一个简单的HTTP服务器)本例子中HTTP协议关键点官方解析QTcpServer类,提供TCP服务的基础;这个类接受TCP连接,可以指定一个端口,也可以让其自动一个端口,可以允许特定的IP,也能允许所有IP;listen()函数用于监听端口;当有新的客户连接服务器的时候newConnection()信号将会发出;nextPe...原创 2019-04-08 07:51:49 · 7872 阅读 · 3 评论 -
HTTP中CORS跨域请求的实现(C++|Qt框架实现)
目录背景关键演示及源码背景HTTP中CORS跨域请求,可以获取其他服务器的数据;这里用Qt框架实现!逻辑如下:浏览器访问127.0.0.1:80端口!80端口请求了127.0.0.1:81的数据!这里都是指资源!关键需要在127.0.0.1:81服务器中的HTTP数据包头添加如下数据:Access-Control-Allow-Or...原创 2019-04-14 23:06:49 · 7005 阅读 · 0 评论 -
CORS跨域限制以及预请求验证(C++ Qt框架实现)
目录理论演示及代码理论跨域默认情况下允许方法:GET、HEAD、POST默认情况下允许的Content-Type:text/plain、multipart/form-data、application/x-www-form-urlencoded如果要使用用户自定义头,要在被请求的服务器HTTP响应消息中加入:Access-Control-Allow-Headers...原创 2019-04-17 22:34:18 · 6588 阅读 · 3 评论 -
HTTP之Cache-Control基本概念以及实例(C++ Qt实现)
目录基本概念实例基本概念注意:这是头只是限制性的,约束性的,并不是强制性的;Cache-Control可缓存性:public:服务器返回给浏览器中Cache-Control中设置了public,代表这个http请求所经过的路径中(包括中间的http代理服务器,以及客户端浏览器)都进行缓存;private:只有发起请求的浏览器,有缓存存在;no-...原创 2019-04-27 16:22:47 · 5105 阅读 · 0 评论 -
HTTP之Cookie和Session(C++ Qt框架实现)
目录基本概念博主例子基本概念在HTTP服务器中,响应头可以设置Cookie; 1. 通过Set-Cookie设置; 2. 下次请求头会自动带上; 3. Cookie是键值对,可以设置多个;Cookie属性: 1. 通过max-age和...原创 2019-05-02 14:15:32 · 7641 阅读 · 0 评论 -
Qt文档阅读笔记-QtWebApp官方解析与实例(使用QtWebApp搭建HTTP服务器)
目录官方解析博主例子官方解析QtWepApp是一个C++的http服务器,受到了java Servlets的启发,因为是Qt写的,所以有跨平台的支持。QtWebApp包含如下的组成部分: HTTP Server Template Engine File Logger ...原创 2019-05-02 17:26:04 · 13535 阅读 · 1 评论 -
HTTP之长连接与短连接(C++ Qt框架实现)
目录基本概念博主例子源码下载基本概念HTTP的请求是在tcp链接之上的TCP分为长链接和短链接。当数据传输完后,浏览器和服务器就会商量,要不要把tcp链接关闭,tcp链接开启会有一些消耗。但创建链接的时候会有一些消耗,默认情况下就是保存长链接的。一般情况下只会有6个连接在谷歌浏览器中通过ConnectionID就可以知道,是哪一链接域不一样会创建一个...原创 2019-05-03 11:53:14 · 7373 阅读 · 0 评论 -
HTTP之content-type相关
目录application/x-www-form-urlencodedmultipart/form-datatext/plainapplication/x-www-form-urlencoded请求头中有content-type数据:一般在表单中填写enctype:其中enctype有如下的几种: 1. application/x-...原创 2019-05-04 11:58:55 · 4348 阅读 · 0 评论 -
HTTP之Redirect和Location头使用(C++ Qt框架实现)
目录基本概念博主例子源码下载基本概念通过一个URL去访问一个路径的时候,这个资源已经改变,服务器告诉客户端,被改变的位置;然后再去重写请求另外那个地方;这样的话,就能拿到这个资源。如果某个资源已经改变,不应该把这个url给废弃掉,而是用Redirect重定向。302临时重定向,301永久重定向,这样的话就会有个问题,浏览器缓存会记录这个资源。如果开...原创 2019-05-04 14:20:04 · 6203 阅读 · 1 评论 -
HTTP之Content-Security-Policy的使用(C++ Qt框架实现)
目录基本概念博主例子打包下载基本概念Content-Security-Policy简称CSP中文名:内容安全策略!作用: 1. 限制资源获取; 2. 报告资源获取越权;资源从哪里获取的情况,避免hacker恶意上传一些脚本,外链,非法获取数据;限制方式: ...原创 2019-05-04 23:58:30 · 4397 阅读 · 0 评论 -
HTTP之Last-Modified、Etage、If-Modified-Since理论与实践(C++ Qt实现)
目录基本理论博主例子基本理论首先要理解缓存是如何被创建的:浏览器首先先本地缓存发起创建请求,如果命中则返回数据给浏览器;如果没有命中,就向代理服务器发起缓存,如果命中代理服务器会发给浏览器以及本地缓存;如果没命中,则向资源服务器发起创建请求,然后资源服务器再给代理缓存,本地缓存,浏览器数据;如果要实现这样的功能:1. 浏览器本地有缓存,但...原创 2019-04-30 09:58:02 · 6171 阅读 · 0 评论 -
对HTTP基本认识(HTTP协议入门必备)
目录 基本概念使用phpStudy演示GET方法分析下GET方法使用phpStudy演示POST方法分析POST方法 基本概念HTTP请求信息和响应信息的格式!请求:1. 请求行2. 请求头信息3. 请求主题信息(可以没有)4. 头信息结束后和主体信息之间要空一行 请求行又分3部分!请求方法 请求路径 所用协议请求方法:...原创 2019-02-21 16:28:53 · 4267 阅读 · 0 评论