精华内容
下载资源
问答
  • 目录 1.nginx.conf设置指令 2.发送请求,无请求头域X-Forwarded-For ...4.理解 1.nginx.conf设置指令 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 2.发送请求,无请求头域X-Forw...

    目录

    1.nginx.conf设置指令

    2.发送请求,无请求头域 X-Forwarded-For

    3.发送请求,有请求头域 X-Forwarded-For

    4.理解


    1.nginx.conf设置指令

    proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;

     

    2.发送请求,无请求头域 X-Forwarded-For

    curl localhost:7806/test

     

    3.发送请求,有请求头域 X-Forwarded-For

    curl localhost:7806/mtnew/ -H "X-Forwarded-For:192.168.110.35"

     

    4.理解

    X-Forwarded-For头域是为了说明请求经过了哪些服务器。

    如果请求中不包含X-Forwarded-For头域,则设置X-Forwarded-For头域值为请求发送者的IP;

    如果请求中包含X-Forwarded-For头域,则设置X-Forwarded-For头域值为之前该头域的值后面添加请求发送者的IP,用逗号分隔。

    展开全文
  • wireshark抓数据:理解与分析

    万次阅读 多人点赞 2016-12-18 17:31:55
    wireshark是一个非常好用的抓工具,本文根据平时抓经验,对之前wireshark抓的一些常见知识点进行了整理。 有不当之处,欢迎指正 1.SYN,FIN会消耗一个序号,单独的ACK不消耗序号 2.WIN表示可以接收数据的...

    注明:本文为原创文章,转载请注明出处。参考文章见本文末尾。

    wireshark是一个非常好用的抓包工具,本文根据平时抓包经验,对之前wireshark抓包的一些常见知识点进行了整理。

    有不当之处,欢迎指正

    1.SYN,FIN会消耗一个序号,单独的ACK不消耗序号

    2.WIN表示可以接收数据的滑动窗口(接收缓冲区)是多少,如果A发到B的包的win为0,就是A告诉B说我现在滑动窗口为0了,饱了,你不要再发给我了,就说明A端环境有压力

    3.ACK可以理解为应答。A发给B的ack是告诉B,我已收到你发的数据包,收到ack号这里了,你下次要发seq为ack号的给我

    4.连续传输的时候,且无乱序,无丢包的情况下:上一个包的seq + len  = 下一个包的 seq,如:
    包55976:

    包55977:

    7801(55977的seq ) = 6501(55976的seq) + 1300(55976的len)

    5.[TCP Previous segment not captured]
    在TCP传输过程中,同一台主机发出的数据段应该是连续的,即后一个包的Seq号等于前一个包的Seq Len(三次握手和四次挥手是例外)。
    如果Wireshark发现后一个包的Seq号大于前一个包的Seq Len,就知道中间缺失了一段数据。中间缺失的数据有的时候是由于乱序导致的,在后面的包中还可以找到
    如:包55974

    包55975:

    5201(55975的seq ) != 1(55974的seq ) + 1300(55974的len )

    6.在TCP传输过程中(不包括三次握手和四次挥手),同一台主机发出的数据包应该是连续的,即后一个包的Seq号等于前一个包的Seq Len
    也可以说,后一个包的Seq会大于或等于前一个包的Seq。当Wireshark发现后一个包的Seq号小于前一个包的Seq Len时,就会认为是乱序了。跨度大的乱序却可能触发快速重传
    包55979:

    包55980

    seq(55979) > seq(55980),55980应该是紧跟着55974的(1301 =1300 + 1),从到达的时间来看,是乱序了

    7.关于SLE和SRE:

    SACK在数据丢包需要重传时起作用。
    比如,服务器已发送的数据为1~34454个包,但是,客户端只收到了“1~1301,5201~6501”这些序列的包,也就是说“1302~5200”这些包已经丢了。
    这个时候,客户端会向服务器请求发送ACK,说我收到了seq为1301的包,同时也乱序收到了"SLE为5201,SRE为6501"的包。
    那么,服务器就知道,接着从seq=1302的包开始发送,发送到seq=5200的包的时候,就不用在发送seq=5201的包了,因为客户端已经收到了。
    如果ACK中不带SLE和SRE会怎样呢?那服务器就会重发从"1302"开始之后的所有的包,包括其实客户端已经收到的"5201~6501"序号的包,那就浪费网络带宽了


    8.[TCP Dup ACK]
    当乱序或者丢包发生时,接收方会收到一些Seq号比期望值大的包。它每收到一个这种包就会Ack一次期望的Seq值,以此方式来提醒发送方,于是就产生了一些重复的Ack。
    同时,这些重复的ACK中,也会更新SLE和SRE的值,因为尽管ACK的值不变,即期望的seq没有收到,但可能又会新收到后面的乱序的包



    9.关于Seq,Ack,Win,Len的理解:

    1.指明本次数据发送的信息:本次发送的数据起始序号是Seq,发送的长度是Len
    2.发送端告诉接收端:我期望的Ack是多少,即希望接收端下次发从seq为ack号的给我,同时我还可以接收Win大小的数据,即接收端可以发送(Ack,Ack + Win)区间内的数据给发送端

    10.[TCP Window Update]
    这种情况下,Seq,Ack,Len都没有变,唯一变的是Win大小。说明这个ACK只是表明发送端接收数据的滑动窗口更新了
    一般出现这种情况,就是由于发送端的应用程序将数据从接收数据缓冲区中取出来了,导致接收缓冲区大小更新



    11.关于TCP重传:

    决定报文是否有必要重传的主要机制是重传计时器(retransmission timer),它的主要功能是维护重传超时(RTO)值。当报文使用TCP传输时,重传计时器启动,收到ACK时计时器停止。报文发送至接收到ACK的时间称为往返时间(RTT)。对若干次时间取平均值,该值用于确定最终RTO值。在最终RTO值确定之前,确定每一次报文传输是否有丢包发生使用重传计时器,下图说明了TCP重传过程。


    当报文发送之后,但接收方尚未发送TCP ACK报文,发送方假设源报文丢失并将其重传。重传之后,RTO值加倍;如果在2倍RTO值到达之前还是没有收到ACK报文,就再次重传。如果仍然没有收到ACK,那么RTO值再次加倍。如此持续下去,每次重传RTO都翻倍,直到收到ACK报文或发送方达到配置的最大重传次数。

    所以TCP RTO的值会越来越大


    如图所示:
    1.37527的包,在75.55s发出,期望的ack=120656
    2.知道42504的包,即103.85s的时候,才收到seq=120656的包,很显然,这个ack是超时重传的,因为中间过了28s的时间
    3.在75.55-103.85期间,112.90.135.235应该进行过多次重传,但是都丢失了。知道103.85这个时间点的重传,才到达了客户端
    4.每次重传后,RTO的时间会变大,所以如果重传一直不成功,两次重传之间的间隔时间也会越来越大,从而导致等待数据到达时间也会越来越长

    参考文章:
    1.Wireshark抓包常见问题解析: http://www.xianren.org/net/wireshark-q.html
    2.wireshark抓包常见提示含义解析 : http://blog.csdn.net/u012398362/article/details/52276067
    3.Wireshark抓包工具--TCP数据包seq ack等解读 : http://blog.csdn.net/wang7dao/article/details/16805337
    4.一站式学习Wireshark(四):网络性能排查之TCP重传与重复ACK:http://blog.jobbole.com/71427/
    5.wireshark中带有SLE和SRE的SACK包详解 :http://blog.csdn.net/season_hangzhou/article/details/48318599

    展开全文
  • 在本课程中,首先介绍了webpack打包工具的基础知识,安装过程,然后介绍工具如何打包第三方插件、打包样式的方法,后,介绍打包工具的配置,并详细介绍如何将项目部署到服务端的全部流程。
  • Redis 从入门到精通

    千人学习 2019-09-21 14:21:06
    随着移动互联网的发展,NoSQL 技术得到了快速发展,出现了例如 MongoDB、redis 等 NoSQL 数据库,其中 Redis 拥有出色的性能、丰富的数据结构和良好的稳定性、同时拥有分布式的架构等优秀特性得到了业界的广泛应用,...
  • jar和war区别及理解

    万次阅读 多人点赞 2020-07-20 16:04:37
    在开发阶段不适合使用war,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新 Servlet类文件,而每一次改动后,重新建立war将是一件浪费时间的事情。在产品发布阶段,使用war文件比较合适的,因为在这...

    在开发阶段不适合使用war包,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新 Servlet类文件,而每一次改动后,重新建立war包将是一件浪费时间的事情。在产品发布阶段,使用war文件比较合适的,因为在这个时候,几乎不需要再做什么改动了。

    jar包

    jar是类的归档文件
    JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为 J2EE 应用程序创建的jar文件是 EAR 文件(企业 jar文件),jar文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,jar文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 jar中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 jar。
    通常是开发时要引用通用类,打成jar包便于存放管理,当你使用某些功能时就需要这些jar包的支持,需要导入jar包。
    jar包就是java的类进行编译生成的class文件打包的压缩包,包里面就是一些class文件。当我们自己使用Maven写一些java程序,进行打包生成jar包。同时在可以在其他的工程下使用,但是我们在这个工程依赖的jar包,在其他工程使用该JAR包也要导入。
    在这里插入图片描述


    war包

    war包是一个Web应用程序
    一个web程序进行打包便于部署的压缩包,里面包含我们web程序需要的一些东西,其中包括web.xml的配置文件,前端的页面文件,以及依赖的jar。便于我们部署工程,直接放到tomcat的webapps目录下,直接启动tomcat即可。同时,可以使用WinRAR查看war包,直接将后缀.war改成.rar。
    在这里插入图片描述

    Web存档(war)文件包含Web应用程序的所有内容。它减少了传输文件所需要的时间。


    jar包和war包区别

    jar是java普通项目打包,通常是开发时要引用通用类,打成jar包便于存放管理。当你使用某些功能时就需要这些jar包的支持,需要导入jar包。war是java web项目打包,web网站完成后,打成war包部署到服务器,目的是为了节省资源,提供效率。

    jar文件(扩展名为. Jar,Java Application Archive)包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等。通常是开发时要引用的通用类,打成包便于存放管理。简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。

    war文件(扩展名为.War,Web Application Archive)包含全部Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对jar文件进行封装,并把它作为小型服务程序(servlet)来访问。 war包是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。war包是Sun提出的一种web应用程序格式,与jar类似,是很多文件的压缩包。war包中的文件按照一定目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。通常在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类(如JavaBean)。通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。

    Ear文件(扩展名为.Ear,Enterprise Application Archive)包含全部企业应用程序。在这种情形下,一个企业应用程序被定义为多个jar文件、资源、类和Web应用程序的集合。

    SpringBoot项目既可以打成war包发布,也可以找成jar包发布。
    jar包:直接通过内置Tomcat运行,不需要额外安装Tomcat。如需修改内置Tomcat的配置,只需要在SpringBoot的配置文件中配置。内置Tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,比较简单。
    war包:传统的应用交付方式,需要安装Tomcat,然后放到wabapps目录下运行war包,可以灵活选择Tomcat版本,可以直接修改Tomcat的配置,有自己的Tomcat日志输出,可以灵活配置安全策略,相对打成jar包来说没那么快速方便。


    END

    展开全文
  • Java项目 常用的命名及理解【dao、domain、service、utils、web、impl

    JavaWeb 黑马旅游网 项目结构:

      

      

    目录

    1、dao包

    2、domain包

    3、service包

    4、utils包

    5、web包

    6、impl包


    1、dao包

    Dao:数据库相关操作 数据访问。

    Dao 数据访问层:就是用来访问数据库实现数据的持久化(把内存中的数据永久保存到硬盘中 )。

    2、domain包

    domain:实体类(entity)

    3、service包

    在此层做相应的业务逻辑处理。

    4、utils包

    工具包

    5、web包

    一般 存放 servlet 和 filter 。

    6、impl包

    impl是implement的简写,换言之,放置的应该是接口的实现类

    一般三层开发中,service层和dao层都会有接口及其实现类,为了项目能更好的管理和开发,一般将接口放一个包,实现类放置在这个包的子包中。

    展开全文
  • Java——(概念理解+应用举例)

    千次阅读 2020-06-08 12:08:46
    1.对理解(Package) 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。Java 中的一个package()就是一个类库单元。 内包含有一组类,他们在单一的名字空间之下被逻辑组织在了一起。 ...
  • 从零开始学习机器学习视频教程

    万人学习 2017-12-04 22:38:30
    机器学习难学,主要的难度在于算法模型多不好理解,各种各样的工具不知道如何使用,实际项目不知道如何开发。本门课程将系统入门机器学习,课程内容不光是对算法的学习,还包括诸如算法的评价,方法的选择,模型的...
  • 算法基础入门:90分钟搞定动态规划

    千人学习 2019-12-29 10:11:22
    动态规划(Dynamic programming,简称DP)很多人都觉得是比较难以理解和掌握的一种算法,为了应付面试更多的时候程序员会选择直接死记硬背斐波那楔数列或者背包问题的源码,其实只要认真学习、彻底理解,动态规划并...
  • 本课程包含了socket网络编程常用的所有特性,包括tcp、udp协议的基础编程,广播,超时连接,多路复用,高并发的epoll多路复用,多线程的服务端。课程讲解理论与实践相结合,实践以代码延时讲解为主。
  • TF功能理解

    千次阅读 2019-03-16 14:49:28
    TF功能理解 TF功能其实是一个供用户调用的一个库 它是用来记录和整理每个ros节点关于相对位置坐标的已知信息 TF的消息发布 每个ros节点只需要把自己已知的任何相对坐标,比如机械手控制节点只知道机械手...
  • 7 相应R简介 8 文本处理 词干化stemming snowball 记号化Tokenization RWeka 中文分词 Rwordseg 9 tm常用操作介绍 tm具体操作 建立语料库 导出语料库 语料库检索和查看 元数据
  • Java项目工程中utils与tools理解

    千次阅读 2020-04-20 11:23:48
    以下是本人对utils与tools的分别理解: 定义: 名 定义 方法或属性 举例 utils 通用的且与项目业务无关的类的组合;可供其他项目使用 方法通常是public static的;一般无类的属性,如果有,也是...
  • 【游戏运营】【笔记】 谈谈对游戏运营的理解

    万次阅读 多人点赞 2018-07-31 14:21:50
    本篇内容从4个方面介绍了我对游戏运营工作的的理解: 1.工作指标:追求那些数据的增长 2.业务范畴:完成那些工作提升数据增长 3.能力构成:需要什么样的能力完成上述工作 4.产品周期:不同的周期运营做什么 一...
  • 现在理解了之后写下这篇文章,如果有什么不正确的地方希望能够指出一定改正哈哈哈… 详解 当项目中有 go.mod 时,使用 go modules 管理,反之使用 旧的 GOPATH 和 vendor机制。这里针对的是含go.mod的项目 package、...
  • 「软件测试」 抓token的理解

    千次阅读 2019-05-30 19:58:36
    国内大部分的授权协议都是Oauth2.0。...通过token证明你可以有资格对这个测试环境中的页面进行抓。 其实抓是一个很简单的概念,只要对http协议有基本的了解就可以,网上有大量的可以抓的库。其实只要时基本的...
  • 曾为 TensorFlow Top级 的贡献者,著书《深入理解TensorFlow》,是国内第一本深度剖析 Google AI 框架的畅销书。 曾从0到1深入参与了华为 2012 实验室深度学习平台和华为深度学习云服务的设计与研发工作。 【课程...
  • 正好我们做了关于用WireShark抓的实验,写了实验报告,所以有必要记录一下。本博客的大部分内容是我实验报告上的内容,感谢王涛老师给我们上这门计算机网络课程。好,废话不多说,接下来进入正题。首先我们用书面...
  • PO、VO、POJO、DTO、DAO、Service等常见理解

    万次阅读 多人点赞 2018-04-19 20:24:18
    POJO POJO(Plain Ordinary Java Object),简单的Java对象,名字强调它是一个普通的java对象。 POJO只有private属性以及这个属性的public的get和set方法,只能装载数据,也不能实现接口。 POJO不是JavaBean,不承担...
  • 1、尝试网络分析工具Wireshark的使用 2、理解以太网的数据帧格式和MAC地址。
  • Java IO的原理 入门理解,input和output和java程序的关系1.Java IO的原理2.input和output的理解3.IO流的分类4.IO流体系(蓝色为重点、常用)5.各种流的用法 1.Java IO的原理 IO流用来处理设备之间的数据传输 ...
  • SpringBoot理解

    千次阅读 2018-09-15 00:41:20
    整合SSM时需要考虑各种配置文件,jar冲突问题,整合起来非常繁琐,开发完毕的项目以war的形式放入tomcateweb容器也就是tomcate的webapps目录中,然后tomcate启动执行。 在SSM框架的学习过程中,基本上很大一...
  • 讲解wpe抓,封包

    万次阅读 多人点赞 2018-03-24 16:00:41
    起先找WPE软件的时候,只是因为我找网络抓工具,相信大家都听说过大名鼎鼎的Sniffer。偶然之间,我发现了WPE,当时对WPE了解甚少,也不会使用,但并没急着找教程,因为对于软件,一般很容易上手的我,会自己先试用...
  • 谈一下个人对ENTITY,VO,DTO的理解。 ENTITY:与库表中的字段含义完全对应,只多不少。 DTO:接收前端传参、模块调用传参、接收部分数据库返回字段。是ENTITY的精简版。 VO:很少用【接触过的项目大都是用dto】 ...
  • TCP的三次握手TCP的三次握手大家都不陌生,下面用wireshark这个工具抓,进一步的说明三次握手的细节。 1.由客户端发起tcp连接的请求,此时客户端发送一条报文,其中包含SYN标志位,将SYN设置为1; 以及seq位。设...
  • java中package()的使用理解

    千次阅读 2018-08-09 22:20:12
    java中package()的使用理解 2017年02月05日 02:30:08 阅读数:14186 最近在学习java,在学习到对象和类这一部分时,接触了java中很重要的一个概念:package,也就是。一开始对于package的使用我产生了许多...
  • 在一个项目中建立三个分别为:  chapter2  pack2
  • spring的@component注解的理解

    万次阅读 多人点赞 2018-03-19 11:21:32
    今天在做项目时把一个既不是业务控制(Controller)、又不是业务逻辑(Service)、也不是数据访问(Dao)的类在不理解用注解@component的情况下注解成为Controller使用,结果肯定是有问题了,所以请教以后发现只用@...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,129,264
精华内容 851,705
关键字:

包的理解