javaweb作業中的幾個要點
DDoS是指分布式拒绝服务(Distributed Denial of
Service):试图通过恶意请求使系统或者网络超载进而无法继续提供服务。对于一个网站来说,这意味着,该网站将无法加载,用户无法进行交易,查看内
容或者登录账户。对于网络来说,DDoS攻击导致带宽饱和甚至淹没网络设施,对整个网络的用户造成大面积中断。慢慢地,一对一的DoS攻击形态已慢慢淡
出,取而代之的是DDoS攻击,其原理就是一次寻找几百台/几千台或几万台电脑,同时对受害者的服务器或电脑发动联合大攻击,这样就算是再强劲,面对如此
规模的攻击,仍无招架之力。
2.TCP连接有哪些状态
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:在发送连接请求后等待匹配的连接请求(客户端状态)。客户端尝试链接服务端,通过open方法
SYN-RECEIVED:在收到和发送一个连接请求后等待对方对连接请求的确认(服务端状态)。服务接受创建请求的SYN后,也就是TCP三次握手中的第2步,发送ACK数据包之前
ESTABLISHED:代表一个打开的连接。客户端接受到服务端的ACK包后的状态,服务端在发出ACK在一定时间后即为ESTABLISHED
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认。主动关闭的一方,在发出FIN请求之后,也就是在TCP四次握手的第1步
FIN-WAIT-2:从远程TCP等待连接中断请求。主动关闭的一方,在接受到被动关闭一方的ACK后,也就是TCP四次握手的第2步
CLOSE-WAIT:等待从本地用户发来的连接中断请求。被动关闭的一方,在接受到客户端的FIN后,也就是在TCP四次握手的第2步
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认。被动关闭的一方,在发送ACK后一段时间后(确保客户端已收到),再发起一个FIN请求。也就是TCP四次握手的第3步
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认。主动关闭的一方,在收到被动关闭的FIN包后,发送ACK。也就是TCP四次握手的第4步
CLOSED:没有任何连接状态
3.HTTP/1.0 vs HTTP/1.1中Keep-Alive的作用
Keep-
Alive就是我们通常所说的长连接,他可以减少我们tcp链接的开销,加快网站的加载速度。在HTTP1.0及各种加强版中,需要在request中增
加”Connection: keep-alive“ header才能够支持,而在HTTP1.1中是默认打开的。
4.HTTPS的原理
https是基于安全目的的Http通道,其安全基础由SSL层来保证。最初由netscape公司研发,主要提供了通讯双方的身份认证和加密通信方法。现在广泛应用于互联网上安全敏感通讯。
(1) 协议基础不同:Https在Http下加入了SSL层,
(2)通讯方式不同:Https在数据通信之前需要客户端、服务器进行握手(身份认证),建立连接后,传输数据经过加密,通信端口443。
SSL协议基础
SSL协议位于TCP/IP协议与各种应用层协议之间,本身又分为两层:
SSL记录协议(SSL Record Protocol):建立在可靠传输层协议(TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能。
SSL握手协议(SSL Handshake Procotol):在SSL记录协议之上,用于实际数据传输前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
5.如何对HTTP数据进行gzip压缩
gzip
是一种数据压缩格式,默认且目前仅使用deflate算法压缩data部分;deflate是一种压缩算法,是huffman编码的一种加强,他能更加有
效节约带宽流量。他先把文本压缩为.gz然后传输给浏览器,最后由浏览器负责解压缩呈现给用户,其大致过程如下:
(1)首先浏览器请求某个URL 地址,并在请求的头 (head) 中设置属性accept-encoding值为gzip、deflate,表明浏览器支持gzip和deflate这两种压缩方式。
(2)WEB服务器接收到请求后判断浏览器是否支持压缩,如果支持就传送压缩后的响应内容,否则传送不经过压缩的内容;
(3)浏览器获取响应内容后,判断内容是否被压缩,如果是则解压缩,然后显示响应页面的内容。
servlet中的实现
String data = "abcdabcdabcdabcdabcdabcdab"
System.out.println("原始数据的大小为:" + data.getBytes().length);
ByteArrayOutputStream bout = new ByteArrayOutputStream();
GZIPOutputStream gout = new GZIPOutputStream(bout); //buffer
gout.write(data.getBytes());
gout.close();
//得到压缩后的数据
byte g[] = bout.toByteArray();
response.setHeader("Content-Encoding", "gzip");
response.setHeader("Content-Length",g.length +"");
response.getOutputStream().write(g);
数据量过小时可能会发生压缩后更大的情况
6.Cookie的Domain, Path, Expires什么作用
Expires – 过期时间。指定cookie的生命期。具体是值是过期日期。如果想让cookie的存在期限超过当前浏览器会话时间,就必须使用这个属性。当过了到期日期时,浏览器就可以删除cookie文件,没有任何影响。
Path
–
路径。指定与cookie关联的WEB页。值可以是一个目录,或者是一个路径。如果http://www.zdnet.com/devhead
/index.html
建立了一个cookie,那么在http://www.zdnet.com/devhead/目录里的所有页面,以及该目录下面任何子目录里的页面都可以
访问这个cookie。这就是说,在http://www.zdnet.com/devhead/stories/articles
里的任何页面都可以访问http://www.zdnet.com/devhead/index.html建立的cookie。但是,如果http:
//www.zdnet.com/zdnn/
需要访问http://www.zdnet.com/devhead/index.html设置的cookes,该怎么办?这时,我们要把cookies
的path属性设置成“/”。在指定路径的时候,凡是来自同一服务器,URL里有相同路径的所有WEB页面都可以共享cookies。现在看另一个例子:
如果想让 http://www.zdnet.com/devhead/filters/
和http://www.zdnet.com/devhead/stories/共享cookies,就要把path设成“/devhead”。
Domain
–
域。指定关联的WEB服务器或域。值是域名,比如zdnet.com。这是对path路径属性的一个延伸。如果我们想让
catalog.mycompany.com 能够访问shoppingcart.mycompany.com设置的cookies,该怎么办?
我们可以把domain属性设置成“mycompany.com”,并把path属性设置成“/”。FYI:不能把cookies域属性设置成与设置它的
服务器的所在域不同的值
7.浏览器如何缓存文件
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
Expires策略
Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。
Cache-control策略
Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过Cache-Control的选择更多,设置更细致,如果同时
设置的话,其优先级高于Expires。
javaweb作業中的幾個要點的更多相关文章
- [转]2010 Ruby on Rails 書單 與 練習作業
原帖:http://wp.xdite.net/?p=1754 ========= 學習 Ruby on Rails 最快的途徑無非是直接使用 Rails 撰寫產品.而這個過程中若有 mentor 指導 ...
- 判斷作業系統為 64bit 或 32bit z
有時我們在開發Windows 桌面應用程式時,會發生一些弔詭的事情,作業系統位元數就是一個蠻重要的小細節,若您寫的應用程式在Windows 的32bit 作業系統上可以完美的運行,但不見得在64bit ...
- WebRequest + Https + 憑証錯誤 = 作業逾時
前言 一般的系統一登入時,都會顯示公告訊息,我們的系統也是! 因為系統效能問題,所以就幫忙看了程式.發現,每次登入時,都會到DB取公告資料,但公告並不會因為個人而有所不同,是針對整個系統的呀! 所以就 ...
- Azure SQL作業
由於要定期去刪除比較久的資料,礙於Azure SQL DB目前無法直接創建作業,目前找到一種方式就是通過local的SQL SERVER來執行AZURE SQL指令. 步驟如下: SQL Server ...
- php 文件上传类,功能相当齐全,留作开发中备用吧。
收藏一个经典好用的php 文件上传类,功能相当齐全,留作开发中备用吧. 好东西,大家都喜欢,才是真的好,哈哈!!! <?php /** * 文件上传类 */ class upload ...
- ES 處於“initializing”狀態,此時主節點正在嘗試將分片分配到集群中的數據節點。 如果您看到分片仍處於初始化或未分配狀態太長時間,則可能是您的集群不穩定的警告信號。
指標要點: Cluster status: 如果集群狀態為黃色,則至少有一個副本分片未分配或丟失. 搜索結果仍將完成,但如果更多的分片消失,您可能會丟失數據. 紅色的群集狀態表示至少有一個主分片丟失, ...
- 這是我既C語言作業寫博客後寫的第一篇博客
這篇博客應該算是寫給我自己的博客吧,所以這裏我想用繁體字寫,因為我漸漸地發現我已經很少使用到繁體字了,日常QQ聊天都使用簡體字,繁體字都懶得切換了,但是為了不讓別人麻煩,在外界交流的時候我會使用簡體字 ...
- 项目自动化建构工具gradle 入门4——javaWeb在浏览器中显示helloWorld
在java应用中,其实做的最多的还是java web应用.所以现在我们做的就是用gradle构建一个简单的web项目,简单点,直接上代码吧. 1.进入目录D:\work\gradle\web,新建文件 ...
- [R] [Johns Hopkins] R Programming 作業 Week 2 - Air Pollution
Introduction For this first programming assignment you will write three functions that are meant to ...
随机推荐
- socket的accept函数解析
今天与同学争执一个话题:由于socket的accept函数在有客户端连接的时候产生了新的socket用于服务该客户端,那么,这个新的socket到底有没有占用一个新的端口? 讨论完后,才发现,自己虽然 ...
- luci-bwc
文件位于: ../feeds/luci/modules/admin-full/src/luci-bwc.c 功能: Very simple bandwidth collector cache fo ...
- SSL读书笔记
摘要: 第一次写博客,为读书笔记,参考书目如下: <HTTP权威指南> <图解HTTP> <大型分布式网站架构设计与实践> 作者:陈康贤 一. HTTP+SSL=H ...
- 如何安装VM Tool软件包
在linux下,我们想把原windows操作系统下的一些文件拷入到新linux系统中,在windows下对文件(夹)进行复制,在linux下无法进行粘贴,何故?这是因为新装的linux操作系统未安装V ...
- 怎么取消ie浏览器body与html的间隙
在css文件第一行定义全局样式,可以消除html标签默认间隙*{margin:0;padding:0;}
- 个人项目中的WCF使用
今天闲着无事,给大家分享一下我的一个项目中WCF的使用.我这项目使用的是Silverlight,至于其他类型的使用方法也是一样的. 1.建立一个Silverlight带Web项目的解决方案. 2.在w ...
- redis1--redis的介绍
(1)持久化数据库的缺点平常我们使用的关系型数据库有Mysql.Oracle以及SqlServer等,在开发的过程中,数据通常都是通过Web提供的数据库驱动来链接数据库进行增删改查.那么,我们日常使用 ...
- RPC简介与Thrift框架
RPC,全称是remote process call,远程过程调用,简单来讲就是调用部署在另一台服务器上的服务或者被部署在另一台服务器上的服务调用.由于各服务部署在不同机器,服务间的调用免不了网络通信 ...
- sublime3安装
1.下载安装程序 http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203059%20Setup.exe 2.下载注册机 http:/ ...
- Logistic Regression 模型简介
逻辑回归(Logistic Regression)是机器学习中的一种分类模型,由于算法的简单和高效,在实际中应用非常广泛.本文作为美团机器学习InAction系列中的一篇, 主要关注逻辑回归算法的数学 ...