
请求响应
文章平均质量分 65
zzzgd816
这个作者很懒,什么都没留下…
展开
-
【笔记】tcp/ip五/七层模型层概念,三次握手、四次挥手等
【笔记】tcp/ip五层模型层概念,三次握手、四次挥手等tcp/ip五层模型一. 应用层协议Linux操作演示二. 传输控制层2.1 协议2.2 三次握手和四次挥手2.2.1 三次握手Linux操作演示2.2.2 四次挥手三. 网络层tcp/ip五层模型五层分别是:应用层传输控制层网络层链路层物理层五层模型的有点是解耦, 互相可替换, 不同层不关心其他层的具体实现.一. 应用层最上级的一层, 也就是我们平时开发接触最多的一层. 这一层主要关心的是业务方面的网络请求响应, 数据展示,原创 2021-09-21 21:41:56 · 451 阅读 · 0 评论 -
使用字典树TireTree和AOP注解SpringEL表达式过滤敏感词
使用字典树TireTree和AOP注解SpringEL表达式过滤敏感词字典树代码单例工厂类二级目录三级目录字典树字典树的概念这里不多说, 一般我们如果需要判断一串字符串中某个词语在不在, 都是直接用contain方法或者indexOf方法. 但是这样的话, 如果需要判断的词语很多, 效率就很低了. 如果字符串的长度是n, 词语有m个, 平均长度是l, 那这样需要调用m次indexOf方法或者contains方法, 而indexOf方法或contain方法的本质也是要遍历原字符串. 因此词语越多, 效率越原创 2021-09-09 21:11:05 · 535 阅读 · 0 评论 -
使用nginx来代理websocket, 以及wss证书
正文如果域名配置了证书, 通过nginx代理, 那websocket就不能用ws, 控制台会报错: The page at '***' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws所以配置如下.修改ws, 改为wss, wss://你的域名/wss修改nginx: location /wss {原创 2021-06-25 17:11:30 · 2247 阅读 · 3 评论 -
【小记】替换@PathVariable中的变量
因为要对接口进行统计, 而项目中用到了@PathVariable的注解, 也就是uri中携带请求参数的方式. 导致一个接口统计出来很多个请求, 比如 /api/get/1, /api/get/2 …在网上找到可以通过Map<String, String> pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);拿到这个PathVariable参数. 于是初步代码如.原创 2020-11-23 11:20:46 · 971 阅读 · 0 评论 -
postman自动生成签名,因为以及base64特殊字符出现的坑
postman自动生成签名,因为以及base64特殊字符出现的坑一. postman的js脚本二. 特殊字符的坑之前用了这么久的postman, 也一直没去深入研究, 最近因为每次都需要加签去请求, 心想能不能自动给我生成签名参数去请求, 没想到网上搜一搜还真有. 这里整理下一. postman的js脚本如图, 这里贴上我们的js脚本我这里是一个MD5签名后, 在用Base64编码得到的签名. 具体签名不同可以自己修改.let salt = "1234567";let param = r原创 2020-10-28 21:06:31 · 2184 阅读 · 0 评论 -
使用guava和redis两种方式来实现限流器
使用guava和redis两种方式来实现限流器1. redis方式2. guava限流器3. 两者整合切换yml配置aop注解aop切面两个限流器,实现一个接口1. redis方式redis方式主要是靠incr这个操作,通过过期时间和递增数来判断是否允许通过请求。 public void apply(String key, int limitCount, int limitPeriod, ...原创 2020-01-02 20:38:12 · 3224 阅读 · 1 评论 -
测试查询ip地理位置的api调用情况
尝试多个查询ip地理位置的api首先看代码:public static void main(String[] args) throws UnsupportedEncodingException { long l = System.currentTimeMillis(); for (int i = 0; i < 6; i++) { System.out.println(getI...原创 2019-11-26 15:13:37 · 615 阅读 · 0 评论 -
表单多行实体数据提交,重复的参数名,测试各种情况看SpringMVC后台能不能接收
0. 总结先把总结写在前面。下面提到的情况都是: 表单提交而不是ajax提交,也就是 content-Type是 application/x-www-form-urlencoded 而不是json类型 , 模拟多个参数名一样, 多行实体提交的情况1.后台接收,controller的形参不能是接口如List,无法被实例化。同时基本数据类型和String不能直接使用list或ArrayLi...原创 2019-10-31 21:10:58 · 758 阅读 · 0 评论 -
前后端分离,后台java配置前端域名处理跨域问题
前后端分离的话,经常是前端代码部署的服务器和后台部署的服务器不一样,域名也不一样。这个时候就会有跨域问题。我们可以通过前端的处理方式jsonp(基于js的无视域名调用和callback回调封装),但是这里只说后台java 的处理方式代码:跨域问题是浏览器控制台虽然会抛异常,但是仍然会发起这个请求。后台设置响应头Access-Control-Allow-Origin表示了指定允许其他域名访问 ...原创 2019-10-16 19:04:51 · 2436 阅读 · 0 评论 -
HttpClient使用时Timeout waiting for connection from pool,maxConnTotal和maxConnPerRoute
一、为什么会报Timeout waiting for connection from pool首先我们需要知道,HttpClient是不建议每次使用都创建的,因为它本身就带一个连接池。如果我们使用频繁的话,频繁创建HttpClient对象也不是明智的。我在使用HttpClient的时候,在一个调用链中,只是依次使用了HttpClient调用了几次http接口,却发现在第5个的时候,报错了or...原创 2019-08-16 11:54:33 · 20886 阅读 · 4 评论 -
下载文件时,响应Response设置,浏览器弹出下载框
在你潇洒的写下InputStream转到response的时候,需要先设置下Response,否则浏览器并不会弹出下载框预处理"Content-Type", "application/octet-stream"是内容类型,告诉浏览器这个是什么,可以参照对照表https://www.runoob.com/http/http-content-type.htmlpublic static voi...原创 2019-07-25 14:10:16 · 12293 阅读 · 0 评论 -
SpringBoot使用swagger api,将所有接口导入到Postman
一 前言之前开发我都是使用postman,虽然界面清晰简洁,但是所有的接口,包括参数都需要自己一点点ctrl+c,ctrl+v,如果能把项目所有的接口都导入到postman就好了. 然后后面又发现了swagger. Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法...原创 2018-08-23 13:51:44 · 5724 阅读 · 0 评论 -
java通过Http请求访问网络图片或文件返回byte数组的两种方式
第一种方式,使用HttpURLConnection使用HttpURlConnection发送一个get请求,打开一个连接,从连接获取到流,将流转成byte数组/** * 发起Get请求 * * @param urlStr * @return */ public final static byte[] doGetRequestForFile(String ...原创 2018-09-04 16:15:24 · 26219 阅读 · 7 评论 -
使用RestTemplate发送get请求,获取不到参数的问题
在开发的时候,需要调用第三方接口, 使用RestTemplate去调用,结果发现一直返回报错, 跟别人联调也说没有收到我发过去的请求参数.String url = "http://api.xxx.xxx";//模拟请求参数Map map = new HashMap&lt;&gt;();map.put("name","zgd");map.put(&am原创 2018-09-20 17:48:30 · 26060 阅读 · 10 评论 -
深度理解Tomcat的acceptCount、maxConnections、maxThreads
一、Nio、Bio、APR1、Connector的protocolConnector在处理HTTP请求时,会使用不同的protocol。不同的Tomcat版本支持的protocol不同,其中最典型的protocol包括BIO、NIO和APR(Tomcat7中支持这3种,Tomcat8增加了对NIO2的支持,而到了Tomcat8.5和Tomcat9.0,则去掉了对BIO的支持)。BIO是Blo...转载 2019-03-22 14:22:40 · 22466 阅读 · 4 评论 -
Tomcat 接收连接的accept流程
转自晴天哥_374的简书开篇这篇文章的主要目的是分析下Tomcat在处理连接请求的整个过程,参考了前人的文章并在文末指出,通过时序图能够较清楚的走通整个流程。Tomcat处理流程Tomcat处理流程说明:Connector 启动以后会启动一组线程用于不同阶段的请求处理过程,Acceptor、Poller、worker 所在的线程组都维护在 NioEndpoint 中。Acc...转载 2019-03-26 18:24:10 · 1245 阅读 · 1 评论 -
SpringBoot的restTemplate整合HttpClient连接池及配置
1. 为什么要整合HttpClientRestTemplate是Spring自带的一个调用rest服务的客户端,它提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。RestTemplate默认是使用JDK原生的URLConnection,默认超时为-1, 也就表示是没有超时时间的,这个肯定不能满足复杂情况的使用需求, restTemplate的工厂是支持使用HttpCli...原创 2019-03-27 23:15:05 · 33405 阅读 · 12 评论 -
高并发下解决秒杀问题的思路
转载https://www.jianshu.com/p/718b1147ee3a转载 2019-05-08 15:51:33 · 713 阅读 · 0 评论 -
Tomcat,Nio和Servlet的一些笔记
一. servlet1.1 什么是servlet?servlet是一个java的服务端应用程序。类似一个java组件或者小插件,用来处理客户端和服务端之间的请求和响应。需要依赖servlet容器,由容器来实例化和调用service方法servlet让客户端和服务器端不仅仅是进行简单的静态资源传输, 它可以实现动态的资源和一些复杂的业务逻辑。我们使用的spring mvc和后面的spring...原创 2019-06-15 12:53:41 · 1525 阅读 · 0 评论 -
Java判断用户是通过pc,还是安卓还是ios,还是微信客户端访问
在浏览器发送的请求中,请求头包含了客户端的信息String userAgent = request.getHeader(&amp;quot;user-agent&amp;quot;);if(userAgent.indexOf(&amp;quot;Android&amp;quot;) != -1){ //安卓}else if(userAgent.indexOf(&amp;quot;iPhone&am原创 2018-07-24 19:49:36 · 9188 阅读 · 0 评论