读《Web性能优化与HTTP/2》有感笔记
一、前言前段时间本着尝鲜与想释放看书的欲望的初衷入手了Kindle PaperWhite 3,买来后便把之前一直想看但迫于书籍的沉重与携带的不便而没看的书籍塞了进去,其中有一本叫做《Web性能优化与HTTP/2》,这是从看云上找到的一本书籍,被题目所吸引,但是放入后才发现这本书中并没有多少字,但是牵扯出的东西却太多了,所以打算写这么一篇,记录一下自己的感受与学习。 下面以书中所提及的知识点为主线,记录我对于各个知识点的学习与感受 二、Http 304304 Not Modified是一个在网页浏览过程中不会直接发现的一个提示,在正常浏览网页的时候用户不可见,只有当我们打开Console控制台的时候才会发现,请求列表中存在304响应状态码。 如果客户端发送了一个带条件的GET请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。 2.1、Http 304的响应状态的资源更新机制: 可能请求一:当客户端缓存了目标资源但不确定该缓存资源是否是最新版本的时候...
哈希数据分布及冲突解决方法
哈希表是我们常用的一种数据结构,它拥有的 O(1) 的读写时间复杂度,但是由于它是通过计算特征并存储原始数据的方式进行实现的,因为不可避免的我们就需要考虑哈希冲突的问题,本文中列出了目前流行的多种的数据冲突解决方式。 一、Hash表基本概念1.1、装填因子装填因子 = (哈希表中的记录数) / (哈希表的长度) 装填因子是哈希表装满程度的标记因子。值越大,填入表中的数据元素越多,产生冲突的可能性越大。 二、Hash函数2.1、直接寻址法将某个关键字或者关键字的某个线性函数值作为哈希地址,即Func(Key)=a*Key+b,其中a和b为整数;这种散列函数也叫做自身函数,如果Func(Key)的哈希地址上已经有值了,那么就往下一个位置找,直到找到Func(Key)的位置没有值了就把元素放进去。 2.2、数字分析法分析要写入的数据,依据数据的特性,选择数字出现冲突率较低的部分列来构造哈希地址,因此数字分析法就是找出数字的规律,尽可能利用这些数据来构造冲突几率较低的散列地址。 2.3、平方取中法取一个数平方后的中间几位作为散列地址,一个数的平方值的中间几位和数的每...
用C#编写的一个IP地址修改器
一、编写初衷:在学校的时候很多时候需要更改自己电脑的IP地址,比如机房课程设计的时候,拔掉机房的网线插到自己电脑上的时候,每次都得配上机房的IP地址,下午下课回去后还得自己更改为自动获取IP地址,很是烦人。之后我曾经用过BAT的方式去修改电脑的IP地址等信息,之前用起来效果也十分不错,但是毕竟添加IP地址等信息还得去编辑BAT,也不是十分方便,对于一些小白用户来说多少也是个麻烦事,并且之前的那个BAT需要手动以管理员方式运行,也比较麻烦,为此打算用C#写一个小程序,方便的来改变电脑的IP地址等信息。 二、软件详细介绍:该IPAddressModifier软件使用Microsoft Visual Studio 2015这款IDE使用C#进行编写,整体上只设计了两个窗体,一个是当前网络适配器详情以及预览预设置IP地址等信息的窗体,还有一个是针对预选IP地址等信息的操作窗体,整体的耗时大概一周左右,其实时间应该是两周左右,因为中间有一些考试,我还需要好好复习一下,所以一共做的时间应该是一周左右,因为本人C#的技能并不是很好,也想把这次当作C#的一次复习,所以就是边查边做了。开始进入界面...
JSP标准动作-JSP笔记-7
一、说明1.1、JavaBean的含义: JavaBean是一种java语言写成的可复用组件。 它是一种特殊的java类,特殊性如下: 类必须是具体的和公共的; 具有无参数的构造方法; 这种方法的访问属性必须是public的,并且方法的命名也必须遵守一定的命名规范。 1.2、JavaBean的优点: 提高代码的可复用性; 程序易于开发维护; 可以跨平台; 1.3、JavaBean的使用: 标准动作用于: 将JavaBean嵌入JSP页面; 设置和获取JavaBean的属性 将用户请求转发给其他页面 将其他用户的内容嵌入当前页面 标准动作中的属性区分大小写。 JSP中的标准动作使用作为前缀。 JSP可使用JSP标准动作调用JavaBean组件并访问属性。 Java标准动作包括: <jsp:useBean> <jsp:setProperty> <jsp:getProperty> <jsp:forward> <jsp:include> useBean动作: jsp:useBean标签用于在指定的域范围...
JSP隐式对象-JSP笔记-6
一、关于JSP隐式对象 JSP饮食对象是web容器加载的一组类的实例。 它不像一般的java对象那样用”new”去获取实例,而是可以直接在jsp页面的java程序片和表达式部分使用对象。 jsp使用java定义的隐式对象来访问网页的动态内容。 隐式对象的名称是jsp的保留字。 jsp提供了一些隐式对象可简化开发。 注:这里我们主要体验这些JSP隐式对象的作用范围。 对象的作用域是可以访问对象的部分; JSP页面中的隐式对象的作用域包括: page – 再引用对象的JSP页面中提供对象。 Request – 提供在所有请求页面中可用的对象。 Session – 提供对象已访问给顶应用程序中的所有网页。例如,用户访问一个网站,并通过访问其他链接打开网站中的其他页面。网站中的所有网页形成一个应用程序作用域。 作用于通信对象和控制对象用于访问给定作用域中可用的所有对象。 二、四种隐式对象: 输入/输出对象: request response out 作用域通信对象: session application pageContext Se...
常见代码许可证对比
一、简介目前主流的许可证为GPL、LGPL、AGPL、MIT、Apache、BSD、Mozilla 二、协议类别GPLGPL全称为GNU General Public License(GNU通用公共许可协议),缩写为GNU GPL 或 GPL,GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利,但是新增代码只能使用相同的许可证。 目前GPL协议存在三个不同的版本,关于不同版本的详细协议内存,请参考:GPL V1、GPL V2、GPL V3 采用该协议的代表作品:EMACS、部分Linux核心代码、GCC LGPLLGPL的全称为GNU Lesser General Public License(GNU 宽通用公共许可证),旧称为GNU Library General Public License(GNU 库通用公共许可证)。允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。 采用该协议的代表作品:Checkstyle、GTK等 MITMIT全称为T...
JSP脚本元素指令与动作JSP笔记-5
一、JSP脚本元素:由于都是在一定的格式里起纳入Java代码,因此经常把“表达式”、Scriptlet、“声明”都称为脚本元素。 1.1、JSP表达式:JSP表达式是对数据的表示,系统将其作为一个值进行计算和显示。示例代码如下所示: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html> <head> <title>jspDemo1.jsp</title> </head> <body> <h1>JSP表达式 示例</h1> <!-- 常量,方法值,算术运算,关系运算 --> <b>PI 的值: </b><%=Math.PI %><br /> <b>100,99中最大的值 :</b><%=Math.m...
JSP页面执行过程-JSP笔记-4
环境 Eclipse Java EE IDE for Web Developers. Version: Neon.1a Release (4.6.1) Apache Tomcat version: 8.0.39 开始 整体过程感受: 当我们请求WEB容器中的JSP页面时,WEB容器便将被访问的页面交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。 每个JSP页面在第一次被访问时,JSP引擎先将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。 由于每台服务器的环境不同,具体的由Tomcat中的JSP引擎转译的源码地址也就不一样。在我本机的环境中,我可以通过查看控制台的相关提示,就可以快速找到与我项目中jsp文件对应的java文件和class文件。示例图如下。(当然如果你实在想了很多办法也没能找到jsp转译的相关文件位置,那就用最笨的方法,来个具体盘搜索...
JSP使用中问题汇总
一、说明:本篇主要说明在我学习JSP的相关过程中,遇到的最凸显的一些问题,肯定附带一些IDE工具(这里主要是Eclipse)的一些问题,为了方便查询,特此记录。我自身软件环境如下: Eclipse Java EE IDE for Web Developers. Version: Neon.1a Release (4.6.1); Apache Tomcat version: 8.5.8 ###进入Servlet映射的虚拟路径的404错误问题 我发现在使用Eclipse利用servlet3.0及以上的版本写虚拟路径映射的时候,默认没有web.xml的时候(当然与这无关),在路径都书写正确的情况下始终无法进入对应的路径,Eclipse的控制台提示错误为: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Test' did not find a matching prop...
利用Servlet完成表单提交验证-JSP作业-2
一、环境 Eclipse Java EE IDE for Web Developers. Version: Neon.1a Release (4.6.1) Apache Tomcat version: 8.0.39 二、作业内容:利用三个servlet,实现表单页面的输出,表单提交的信息的验证以及验证信息后的跳转页面。 三、开始我们一共需要建立三个servlet类,他们分别是:Login.java,LoginContral.java和Welcome.java,他们的具体代码如下所示: 1.Login()类代码如下: @WebServlet("/Login")public class Login extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Login() { super(); // TODO...

