Web初解
web 网站、网页
Java web 服务器端编程
云计算
云 数据(互联网上)
云计算 互联网上数据计算
云计算 --- > 物流
静态。动态web资源 区别
访问同一个资源,如果说每次访问结果都是一样的,静态;会随着访问,资源内容变化的,动态
动态web 设计语言
ASP(微软)、PHP(开发组织)、JSP(sun)
今天动态web系统
PHP、.net(ASP.net VB.net c#)、JSP、ruby、python
静态网页技术
HTML CSS JavaScript
C/S Clinet/Server 用户安装客户端程序 (QQ、迅雷)
B/S Browser/Server 浏览器 B/S是一种特殊C/S 轻便性
web系统怎么通信
C/S 通信 网络连接----> 自由通信 客户端(主动)给服务器发信息、服务器(主动)给客户端发信息
B/S 通信 网络连接----> 请求-响应 通信 必须客户端首先给服务器发送请求,服务器才能给客户端响应(回发信息)
访问网页全程剖析
1、启动浏览器
2、输入URL地址 www.it.cn 回车
3、将浏览器请求数据---> HTTP协议请求(字节流)
4、查找Hosts --- 你现在是不是要访问www.it.cn --- 查看一下本地有没有www.it.cn对应ip
在互联网上 任何一台电脑(服务器) 都是以IP地址来唯一表示机器位置的
5、如果windows不知道itcast.cn对应ip --- > 请求会发送给互联网上指定的一台DNS服务器(域名解析服务器)
域名:itcast.cn --- 为什么需要域名:因为IP不好记 210.114.23.192
6、将HTTP协议请求(字节流)发送给指定IP服务器
7、服务器在本地查找请求需要的资源
8、将查找结果以HTTP协议响应(字节流)回发给客户端 windows系统
9、浏览器解析显示数据
http://www.it.cn:80/aaa/bbb/index.html
http 协议
www.it.cn --- 域名 --- >IP --->服务器
:80 端口 ----- > 对应服务器上面一个应用程序
* 任何和网络有交互的应用程序都得需要最少一个端口
aaa/bbb 路径
index.html 服务器资源
服务器:
访问网站---- > 需要一台服务器 ----> 硬件 服务器是什么----> 是运算速度、性能很好电脑PC
假如我已经有了一台硬件服务器,想制作一个网站 -----> 安装一个服务器程序 ----> 软件
支持J2EE规范:支持J2EE规范中定义的所有的技术 Servlet、JSP、EJB
weblogic:收费的,价格不菲
websphere :功能最强大的,复杂 贵!
apache tomcat:不要钱,功能受限 ,支持Servlet、JSP
**收费的东西,试用
tar.gz linux特有压缩文件格式
.sh --- shell linux 脚本
http://localhost:8080/ ----> localhost 本地的主机 ----> 127.0.0.1 本机IP ---->192.168.1.157
8080 端口 tomcat默认端口
www.it.cn:8080 不好的 修改端口为默认端口 80
Tomcat/conf/server.xml
conf ---> configuration
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
服务会占用端口,有些服务是任务管理器无法关闭的(病毒:应用程序能被任务管理器关掉---服务(隐藏)--- 服务绑定到windows另一个服务商)
services.msc 调用出windows服务管理界面
CATALINA_HOME配置
指定tomcat安装配置---> 当你电脑上有多个tomcat时候,指定哪个是你默认使用的
写好网站,虚拟目录映射
1、将整个目录放入tomcat/webapps
2. 配置conf/server.xml 在Host元素加入
<Context path="/person" docBase="C:\personwebsite" />
path 必须以 /开始
docBase 指定网站在本地存放位置
$CATALINA_HOME ---> Tomcat 安装目录
$CATALINA_HOME/conf/context.xml 里面的配置信息将会被所有web应用使用
3、配置虚拟路径
$CATALINA_HOME/conf/[enginename]/[hostname]/ 翻译
tomcat安装目录/conf/Catalina/localhost
新建xml xml文件名(除了.xml)就是path
person3.xml
<Context docBase="c:\personwebsite" />
path --- > person3
war 格式 ---- zip 格式
WEB-INF 对浏览器不可见
将一些不想让用户直接看到的资源放入WEB-INF
用程序动态将资源读取读取出来,发给客户端,在执行程序的时候做权限认证
web.xml配置
1、编码问题
2、指定DTD、Schema
Tomcat 5.0 -7.0 Servlet 2.3-3.0
web.xml Schema 需要指定JavaEE版本
欢迎页面
www.it.cn 展示一个默认的网页 ---- 主页
<welcome-file-list>
<welcome-file>like.html</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
www.it.cn/index.html
www.it.cn/index.jsp
www.it.cn/index.php
www.it.cn/index.asp
配置虚拟主机 配置DNS
1、告诉tomcat 你里面有个baidu
<Host name="www.baidu.com" appBase="c:\baidu">
</Host>
2、配置Hosts
3、设置缺省目录
www.baidu.com
缺省目录:ROOT
MyEclipse web工程 <----- > tomcat 需要标准的web工程目录
tomcat
---- WEB-INF
----- classes
----- lib
----- web.xml
---- *.html *.jsp
eclipse
------src
------WebRoot
----- WEB-INF
----- classes
----- lib
----- web.xml
----- *.html *.jsp
当Eclipse工程发布时,WebRoot目录会作为网站的根目录发布,并更名为工程名
配置MyEclipse tomcat
TCP 数据无丢失协议
常用的每层协议有哪些
应用层:http 80 ftp 21 pop3 110 smtp 25 telnet 23
传输层:TCP UDP
网络层:IP
TCP/IP
TCP : 数据传输安全,无丢失
UDP : 广播 可能丢失数据 性能高
三次握手
1、你能听见我说什么吗?
2、我能听见,你能听见我说什么吗
3、我能听见
TCP 数据不能正常接收 超时
HTML 超文本标记语言
连接和请求
一次连接可以有多次请求
<h1>Hello</h1>
<img src="a.jpg" />
<img src="a.jpg" />
<img src="a.jpg" />
两次请求
<h1>Hello</h1>
<img src="a.jpg" />
<img src="b.jpg" />
<img src="c.jpg" />
四次
HTTP协议
请求:请求行、头信息、实体内容
GET /firstweb/ HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
If-Modified-Since: Wed, 26 Oct 2011 07:56:00 GMT
If-None-Match: W/"335-1319615760265"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: localhost:8080
Connection: Keep-Alive
Cookie: JSESSIONID=C2117E298DC6A01FFB4328CC9738A109
请求行:GET /firstweb/ HTTP/1.1
包括三部分:请求方式、请求的资源名称 HTTP协议版本号
请求方式:Get Post
HTML发起一个Get: <a href=""> 、<form method="get" >、在浏览器手动输入url、JS:location.href
数据在URL上 ?拼接 多个&分隔
数据长度受限
数据显示在URL上 不安全
HTML发起一个Post:表单以post方式提交 <form method="post"> 、JS:form.method="post"; form.submit();
可以发送大规模数据、安全
头信息:
Accept: */* ---------- 客户端能接受文件类型
Accept-Language: zh-cn ---- 客户端语言 zh-cn
Accept-Encoding: gzip, deflate ---- 客户端接收的压缩方式
If-Modified-Since: Wed, 26 Oct 2011 07:56:00 GMT ----- 上次修改时间
If-None-Match: W/"335-1319615760265"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: localhost:8080 ----- 请求访问主机端口
Connection: Keep-Alive
Cookie: JSESSIONID=C2117E298DC6A01FFB4328CC9738A109 ---- 身份认证
Accept-Charset:客户端所能识别的编码类型
If-Modified-Since
设置成为过去:服务器知道你的资源已经旧了,发送最新的
设置成为将来:服务器会建议客户端从本地加载
Referer: http://www.it315.org/index.jsp ---- 请求的来源 (放盗链)
盗链:下载音乐
在你设定客户端能接受的文件类型时,需要提供文件ContentType -- mime type
任何一种文件格式都会对应一种ContentType
text/html ---- html文件的ContentType
text/css ----- css文件的ContentType
响应:状态行,消息头,实体内容
HTTP/1.1 200 OK ------ 状态行
头信息
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 625
Date: Wed, 26 Oct 2011 08:24:57 GMT
实体内容
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="http://localhost:8080/firstweb/">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
</body>
</html>
状态行
HTTP/1.1 200 OK
包括三部分:Http协议版本 状态码 状态的描述信息
100-199 未处理结束 要求你再来一个请求
200-299 正常 200
300-399 要求客户端细化请求
302 重定向
307和304 缓存
400~499 资源寻找有问题 404-----你访问的资源不存在
404原因:一个人编写了一个正常的网页,以正常的方式发布,但是404
1、路径写错了
2、发布不成功 ---- tomcat manager
500~599 :服务器端出现错误,常用 500 程序内部有错误
头信息
Content-Encoding: gzip ----- 告诉客户端,我采用gzip压缩
Content-Length: 80 ----- 告诉客户端我压缩后的内容长度
Content-Language: zh-cn ----- 响应语言格式
Content-Type: text/html; charset=GB2312 ----- 告诉客户端给你发送了一个什么类型的文件
自动跳转
Refresh: 1;url=http://www.it315.org ---- 1秒后跳转到http://www.it315.org
附件下载
Content-Disposition: attachment; filename=aaa.zip
**同样访问web资源,为什么有的在浏览器中打开,有的弹出下载框
浏览器识别的打开,不识别下载
识别:html img txt pdf
当你写了这个Content-Disposition: attachment; filename=aaa.zip 意味着浏览器不管识别还是不识别都得下载
设置缓存
Expires: -1 ---- 过期时间 设置为0或者-1
Cache-Control: no-cache
Pragma: no-cache