web基础知识的了解及tomcat的使用和http协议的学习 ——Web部分第九天

2/10/2017来源:ASP.NET技巧人气:344

web基础知识的了解及tomcat的使用和http协议的学习 ——Web部分第九天

了解内容

常见的软件体系结构

- B/S结构即浏览器/服务器(Browser/server); - C/S结构即客户端/服务器(Client/server);

1. web基础知识的了解

web资源

- 分为静态资源和动态资源,静态资源浏览器可以直接解析,而动态资源则服务端需要先转换成静态资源才可以传给浏览器解析。 - 静态资源 :html - 动态资源 :jsp/Servlet(可以将动态资源转化为静态资源的容器和其他功能等等) - 其他web等等

访问web资源:协议名://域名:端口号/路径

web服务器

- 用于接受客户端的请求,给客户端请求的资源做出回应。 - 常见的web服务器:Tomcat , JBoss , GlassFish , Resin , Weblogic , Websphere

2. tomcat的使用

使用前配置好java_HOME的路径

配置访问主页 http://localhost:8080 看是否启动成功

tomcat的目录介绍

- bin 可执行文件包 - conf 配置文件 - logs 日志文件 - lib 程序使用的jar包 - temp 临时文件 - webapps 访问的web程序 localhost:8080/写的项目 - work 有tomcat生成的东西在里面

3. web应用的创建

Tomcat目录下webapps为创建内置项目的路径

- 动态网站的项目目录下应创建WEB-INF文件夹及网站文件。 - 在WEB-INF目录下创建web.xml文件(还有项目的lib目录,classes目录) - WEB-INF目录下的文件浏览器是无法直接访问的。

web.xml文件的设置

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <welcome-file-list><!--表示项目的主页的文件配置--> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>

创建外置的项目

- 修改Tomcat目录下的conf/server.xml的文件关键信息。 - 或在conf/catalana/localhost 目录下创建:“项目名.xml” 文件,并直接创建Context标签 <!--第一种--> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!--在此目录下创建xml标签创建项目--> <Context path="项目名称(自定义)" docBase="外置的项目路径"> </Host> <!--第二种--> <Context docBase="外置的项目路径">

4. http协议的学习

请求信息包括:请求头,多个请求信息:头名称:头值,空行,请求体

get请求的了解

GET /mywebPRoject/index.jsp HTTP/1.1 ----------请求头 Host: localhost:8080 ---------- 多个请求信息 Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 DontTrackMeHere: gzip, deflate, sdch, br Accept-Language: zh-CN,zh;q=0.8 Cookie: JsessionID=233D7BDEF1D925DD4502C11E293B096D <!--此行为get请求的的空行--> <!--get请求没有请求体-->

响应代码

HTTP/1.1 200 OK ----------响应行(协议/版本 状态码 状态码的的解析) Server: Apache-Coyote/1.1 ---------- 响应头(Key/Value的形式) Content-Type: text/html;charset=ISO-8859-1 --响应内容的METE类型 Content-Length: 684 Date: Sat, 04 Feb 2017 09:39:29 GMT Request Headers ----------空行 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -------响应的正文 <html> <head> <base href="http://localhost:8080/mywebproject/"> <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"> </head> <body> This is my JSP page. <br> </body> </html>

post请求

POST /mywebproject/index.jsp HTTP/1.1 Host: localhost:8080 Connection: keep-alive Content-Length: <!--表示请求体的长度--> Cache-Control: max-age=0 Origin: http://localhost:8080 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 Content-Type: application/x-www-form-urlencoded <!--Content-Type请求头:表示表单中的数据会使用url来编码,url数据都是以%为前缀,后面跟随两位16进制码来表示--> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Referer: http://localhost:8080/mywebproject/Login.html <!--Referer请求头:表示请求来自哪个页面。--> DontTrackMeHere: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.8 Cookie: JSESSIONID=233D7BDEF1D925DD4502C11E293B096D Form Data username=sadas&password=adsa<!--表单中的数据-->

5. 其他请求头和响应头的介绍

请求头

- Referer这个请求头可以用来做,统计工作,如,统计从百度点击访问网站的次数;也可以用来做防盗链,防止外部网站请求下载本地网站的的资源链。

响应码即响应头的状态吗

- 200 :请求成功,浏览器会正常的显示资源 ; - 404 :资源未找到,这是客户端请求了不存在的资源 ; - 500 :请求资源找到,但服务器端出现了错误 ; - 302 :重新定向,表示服务器要求客户端重新发送一个请求。并在响应行中发送一个响应头Location,他指定了新的访问地址 - 304 :当用户第一此访问index.html时,服务器会添加一个Last-Modified响应头,当用户再次访问时,会有一个if-Modified-Since请求头,会比较服务器端的index.html中最后的修改时间,如果和Last-Modified记录的一致,则可以从本地的缓存中加载主页。并响应304,否则响应200。

其他响应头

-告诉浏览器不要缓存的响应头 - pragma:no-cache - cache-control:no-cache - expires:0