http
文章平均质量分 81
深山猿
不断进化的深山猿
展开
-
rpc调用无法获取异常信息解决
例如,当使用HttpClient发送请求时,如果服务器返回的响应内容为空,但是响应头信息或者状态码不为空,那么Response的返回内容就是空的,但是HttpResponse的实体可能不为空,可以通过调用getEntity方法获取实体。3. 网络传输过程中出现异常,这种情况下Response的返回内容是空的,但是HttpResponse的实体可能不为空,因为网络传输过程中可能只传输了部分内容,或者传输过程中出现了错误,但是已经传输的内容仍然可以被获取。但不会获取失败的详情。怎么处理才能拿到详细的错误信息?原创 2023-07-04 14:57:49 · 1910 阅读 · 0 评论 -
http1.0 1.1和2.0的区别
多路复用:一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。http1.1连接复用是指在一个TCP连接上可以发送多个HTTP请求和响应,避免为每个请求和响应建立新的连接,但是要求响应和请求的顺序是一致的。二进制传输:二进制则不同,只认0和1的组合。HTTP/1.1 适用于大多数的网络应用场景,通过连接复用,提升了性能,但是数据传输效率仍然有限。原创 2023-04-04 17:06:33 · 656 阅读 · 0 评论 -
websocket sse http轮询
适用场景:http轮询:单向http请求,且http连接没有复用。客户端主动发起的轮询sse:半双工,后端持续向客户端推送数据。典型的如评测结果的推送,因为需要评测的中间过程,且要能展示最终结果,所以后端主动多次推送和结束websocket:全双工,客户端和后端可以持续相互推送数据。如运行代码,输入时需要客户端将内容推送给后端,执行结果需要推送给客户端。三者区分:https://blog.gdccwxx.com/http/what-is-sse/https://www.bookstack.cn/转载 2022-05-06 15:51:37 · 740 阅读 · 0 评论 -
操作系统之网络系统
43 预习:Socket通信之网络协议基本原理网络协议:一台机器将内容按照约定好的格式发送出去,另外一台机器收到后能按照约定格式解析,获取到信息。两种网络协议,osi标准七层模型:物理层 数据链路层 网络层 传输层 会话层 表示层 应用层TCP/IP模型:物理层 mac层 ip层 传输层 应用层(dns http)具体如下图:为什么要分层呢?同一套网络协议栈通过切分成多个层次和组合,来满足不同服务器和设备的通信需求。网络协议层次介绍物理层:即物理设备,如连着电脑的网线、wifi.原创 2021-10-11 20:42:03 · 1497 阅读 · 2 评论 -
白名单导致的rpc调用超时问题
异常日志如下:2021-08-19 12:27:28.687[ERROR][ XNIO-2 task-19]-0RspW c.t.c.p.a.a.ExceptionAspect : catch the throwable:[接口调用失败[Connect to test-class-api.*****.com:80 [test-class-api.haibian.com/112.126.75.31] failed: Connect timed out]] by exception a...原创 2021-08-24 17:24:22 · 2592 阅读 · 0 评论 -
http的实现与feign
http的实现方式短连接的服务接口,都是基于应用层Http协议的Http api 或者RESTful api实现,通过JSON文本格式返回数据。如何在Java服务端调用其他节点的Http api 或者RESTful api呢?至少有以下几种方式:(1)JDK原生的URLConnection(2)Apache的Http Client/HttpComponents(3)Netty的异步HTTP Client(4)Spring的RestTemplate:基于以上1、2的Client做的包装(5).原创 2020-12-11 09:48:03 · 2587 阅读 · 0 评论 -
页面跳转
如果没有登录或者登录信息失效,则在Filter中跳转到登录页 String userInfo = getCookieValue("usertokenss", (HttpServletRequest)servletRequest); if(!StringUtils.isEmpty(biUserInfo)) { ...原创 2019-06-04 09:46:55 · 236 阅读 · 0 评论 -
post和get 区分
区分post和get参数:1 get直接在url中,post的参数放在requestBody中,所以从这里说post更安全post Request URL: http://192.168.1.138:8080/rsbi/reportset/previewReport.actionget Request URL: http://192.168.1.138:8080/rsbi/reportse...原创 2019-07-11 13:57:56 · 769 阅读 · 0 评论 -
http header referer和referer policy
Referer 是 HTTP 请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含 Referer 。比如我在www.google.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,它的header 信息里就有:Referer=http://www.google.com由此可以看出来吧。它就...原创 2019-07-11 14:10:27 · 3211 阅读 · 1 评论 -
http header Transfer-encoding的作用
Transfer-encodingTransfer-Encoding,是一个 HTTP 头部字段,字面意思是「传输编码」。实际上,HTTP 协议中还有另外一个头部与编码有关:Content-Encoding(内容编码)。Content-Encoding 通常用于对实体内容进行压缩编码,目的是优化传输,例如用 gzip 压缩文本文件,能大幅减小体积。内容编码通常是选择性的,例如 jpg / pn...原创 2019-07-11 14:17:06 · 3334 阅读 · 0 评论 -
Http请求头中Content-Type以及在Spring MVC中的应用
引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值,以及在spring MVC中如何使用它们来映射请求信息。1. Content-TypeMediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,...原创 2019-07-11 14:21:20 · 3741 阅读 · 0 评论 -
并发导致的用户信息错乱
问题 多个用户登录bi系统,假设用户1有报表1的权限,用户2有报表2的权限。但是发现有时用户1此时无法访问报表1,提示信息是无权限。。。看下用户信息的设置和获取的相关代码:保存用户信息的实体类,使用了TreadLocal保证线程安全:public class LocalUser { private ThreadLocal<User> localCache = new T...原创 2019-08-02 16:20:31 · 927 阅读 · 4 评论 -
http常用错误码
因为老是会忘记,所以还是记录下几个常用的http错误码。3XX :重定向4XX:请求错误5XX:服务器错误301: Moved Permanently被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。302:Move temporarily请求的资源临时从不同的 URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有...原创 2019-03-01 15:37:15 · 450 阅读 · 0 评论 -
网络调试指令 ping telnet traceroute netstat
ifconfig 使用ifconfig <网络接口名称>接口名称:如eth0.即Ip地址信息的网络接口,在linux系统中,每个网络接口都有配置文件分配一个名称,并使用该名称代指该网络接口网络接口的启用和禁用ifconfig eth0 upifconfig eth0 downping的使用成功执行ping命令,说明接收方和发送方计算机都在网络上且可以相互通信ping...原创 2019-01-09 14:14:28 · 3103 阅读 · 1 评论 -
TCP标志位 RST作用、原理、攻击
TCP报头的标志位 TCP报头中一共有六个标志位:URG/ACK/PSH/RST/SYN/FIN。 SYN TCP三次握手中,如果A是发起端,则A就对服务器发一个SYN报文。表示建立连接。ACK 收到数据或请求后发送响应时发送ACK报文。RST 关闭异常连接FIN TCP四次挥手时,表示关闭连接 PSH 发送端需要发送一段数据,这个数据需要接收端一收到就进...原创 2018-12-25 22:20:53 · 13867 阅读 · 1 评论 -
httpclient Post请求 参数用des加密
需求如下,提供远程调用的借口,参数加密。直接上代码des加密算法代码: package com.ruisitech.bi.util;import java.security.SecureRandom;import java.security.spec.KeySpec;import javax.crypto.Cipher;import javax.crypto.Secret...原创 2018-12-28 17:04:06 · 11225 阅读 · 0 评论 -
http到https,混合加密方式,SPDY和HTTP2.0
http到https,https解决什么问题报文为明文传输,存在被窃听的风险--ssl提供报文加密机制无法判定通信方的身份,可能遭遇伪装--ssl的证书机制,需要请求方和服务端拥有相同的公钥证书无法验证报文的完整性,可能已经被篡改--ssl的数字签名机制,MD5和SHA-1等散列值校验的方法https本质上是将http通信接口部分使用ssl和tls协议替代,即原本http和tcp层直接...原创 2018-12-23 14:54:03 · 8024 阅读 · 0 评论 -
tcp的报文序号,三次握手和四次挥手
下面是TCP报文格式图: 上图中有几个字段需要重点介绍下:(1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。(3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下: (A)URG:紧急指针(u...原创 2018-12-23 16:24:23 · 12169 阅读 · 0 评论 -
http tcp,协议4和7层架构
先看下协议的四层架构:应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等传输层:两种协议提供的功能不同。tcp:提供应用程序间的通信。其功能包括:一、格式化信息流,即分包加密等;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。udp:把称作数据的分组以数据报的格式从一个主机发送到另一个主机,但并不保证该数...原创 2018-12-23 17:04:56 · 9944 阅读 · 0 评论 -
网址输入www.baidu.com后发生的事 ARP
在浏览器中输入www.baidu.com后执行的全部过程:浏览器干活:浏览器对用户输入的网址做初步的格式化检查,只有通过以上检查才会进入下一步。 然后增加协议类型,默认是http,所以浏览器自动补充为http://www.baidu.com应用层干的事:DNS解析,将域名转化为ip。dns解析过程:先从DNS缓存取,然后到本地hosts文件取,如果还没有去DNS服务器查询 应用层...原创 2018-12-28 21:42:44 · 6949 阅读 · 1 评论 -
http之 半包 粘包
短连接:连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。长连接:连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。长连接指建立SOCKET连接后不管...原创 2018-12-24 18:11:35 · 9707 阅读 · 1 评论 -
浅谈TCP/IP四种计时器、慢启动、拥塞避免、快速重传、快速恢复
持续计时器解决的问题:A给B发送数据,如果B告诉A自己的缓冲区已满,于是A停止发送数据,等待一段时间后,B的缓冲区出现了富余,于是给A发送报文告诉rwnd大小为400,但是这个报文不幸丢失了,于是就出现A等待B的通知,B等待A发送数据的死锁状态,为了处理这种问题,TCP引入了持续计时器。持续计时器:当A收到B的零窗口通知时,就启用该计时器,时间到则发送一个字节的探测报文,对方会在此时回应自...原创 2018-12-24 20:09:01 · 7196 阅读 · 2 评论 -
TCP的滑动窗口机制
TCP的滑动窗口机制 TCP这个协议是网络中使用的比较广泛,他是一个面向连接的可靠的传输协议。既然是一个可靠的传输协议就需要对数据进行确认。TCP协议里窗口机制有2种:一种是固定的窗口大小;一种是滑动的窗口。这个窗口大小就是我们一次传输几个数据。对所有数据帧按顺序赋予编号,发送方在发送过程中始终保持着一个发送窗口,只有落在发送窗口内的帧才允许被发送;同时接收方也维持着一个接收窗口,只...转载 2018-12-24 21:38:15 · 24808 阅读 · 3 评论 -
对称加密 公开加密 数字签名 数字证书
1对称加密--加解密使用同一秘钥解密和加密用同一个秘钥的方式成为共享秘钥加密;共享秘钥加密必须先将秘钥发给对方,这个时候如果通信被监听,那么秘钥可能落入攻击者手中,同时失去了加密的意义,另外需要安全保管接收到的秘钥。2非对称(公开)秘钥加密--加解密使用不同的秘钥公开密钥使用一对非对称的秘钥,包括一把公开秘钥和一把私有秘钥;发送密文的一方利用公开秘钥对报文加密,接收密文方则用私有秘...原创 2018-12-30 19:14:27 · 7058 阅读 · 0 评论 -
tcp和udp对比 适用场景和优化
区分tcp和udp,各适用于什么场景?1) tcp是基于连接的,即发送数据之前需要先建立连接;udp不需要2)tcp是可靠的,有重传\序号\确认机制\滑动窗口等保证顺序和正确;udp不能保证3)tcp是一对一的;udp支持一对一,一对多,多对多4)tcp比较耗费资源(头较大,确认机制等导致),udp则效率更高5)tcp基于流模式,udp数据报模式 ;关于流模式于数据报模式的理解:...原创 2018-12-25 22:16:57 · 8920 阅读 · 0 评论 -
TCP的分段和IP的分片&MTU和MSS之间的关系
为什么需要分片和分段首先我们知道只要使用网络,数据就会在网络上传输,而数据最终都会以帧的形式在网络中传输,以太网和802.3对数据帧的长度都有一个限制,其最大 值分别是1500和1492个字节,所以如果传输的数据大于上面的长度,就会需要进行切割后传输,即分片和分段.首先说明:数据报的分段和分片确实发生,分段发生在传输层,分片发生在网络层。但是对于分片来说,这是经常发生在UDP传输层协议上...原创 2018-12-26 19:44:25 · 8985 阅读 · 1 评论