Http请求和Tomcat

Http请求


在浏览器中,我们可以通过浏览器自带工具,查看一个完整的网络请求,并审阅本次网络请求发送的请求数据


从上述的Http请求中截取一部分:

GET / HTTP/1.1			--get方式 协议1.1
Host: www.baidu.com  		--主机名
Connection: keep-alive		--状态
Cache-Control: max-age=0	
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8   --客户机环境
Accept-Encoding: gzip, deflate, sdch, br   --压缩编码
Accept-Language: zh-CN,zh;q=0.8   --语言环境
Cookie: ***



http请求详解

<!--

Http请求组成
	一个请求行、若干请求头、实体内容

	请求行:  描述客户端的请求方式,使用的协议方式,请求的资源名称
		|--  	GET/1.html  HTTP/1.1   使用GET请求方式, 请求资源为1.html  使用协议为HTTP1.1

	请求头:  描述客户请求信息、客户环境信息等
		|--Host: www.baidu.com  请求主机名
		|--Connection: keep-alive 请求后连接状态

	实体内容:包裹携带内容


	请求行:
		|--	GET  通过请求URI得到资源
		|--	POST 用于添加新的内容
		|-- PUT 用于修改某个内容
		|-- DELETE 删除某个内容
		|-- OPTIONS  询问可以执行哪些方法
		|--	HEAD 类似于GET, 但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据
		|--	TRACE 用于远程诊断服务器
		....
				
	GET与POST区别:
		1)GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连。
			如www.delphifan.com?id=123&psd=123,且最大支持1K
		2)POST方法是把提交的数据放在HTTP包的Body中。
		3)GET使用Request.QueryString来取得值,POST通过Request.Form来获取值。



	请求头:
		|--Accept:*/*, 客户端接受的数据类型
		|--Host:www.delphifan.com:8080  访问的主机名和端口号
		|--Referer: 上一级资源访问地址 (常用于防盗链)
		|--User-Agent:客户端的软件环境
		|--Cookie:缓存数据相关
		|--Accept-Charset、Accept-Encoding、Accept-Language: 字符集、压缩格式、语言环境
		|--Connection、Date ...
				
-->



http响应                

摘取一些http响应:

HTTP/1.1 200 OK                  		--协议  状态码
Server: bfe/1.0.8.18  					--服务器信息
Date: Mon, 07 Nov 2016 14:40:06 GMT		--时间
Content-Type: text/html;charset=utf-8	--响应数据格式
Transfer-Encoding: chunked				--传送编码
Connection: keep-alive
Cache-Control: private
Expires: Mon, 07 Nov 2016 14:40:06 GMT	--缓存时间
Content-Encoding: gzip
X-UA-Compatible: IE=Edge,chrome=1
Strict-Transport-Security: max-age=604800
BDPAGETYPE: 2
BDQID: 0x945783210003bf0f
BDUSERID: 777600426
Set-Cookie: ***


Http响应详解

<!--
Http响应组成
	一个状态行、若干响应头、实体内容

	状态行:  描述服务器响应使用的协议方式,响应码和响应状态
		|--  	HTTP/1.1 200 OK    使用协议为HTTP1.1  响应码为200  响应状态OK

	响应头: 描述服务器信息、环境信息等
		|--Host: www.baidu.com  请求主机名
		|--Connection: keep-alive 请求后连接状态

	实体内容:包裹携带内容

	响应码:参见RFC 2616 规范定义
		|
		|
		|--1xx:   代表请求已被接受,这类响应是临时响应,需要进一步请求。
				 由于HTTP/1.0协议中没有定义任何1xx状态码,一般情况下服务器禁止向此类客户端发送1xx响应。
		
		|--2xx:   代表请求已成功被服务器接收、理解、并接受。
				200成功、202请求已接受(异步操作)、206部分请求已处理(断点下载)

		|-- 3xx:  需要客户端采取进一步的操作才能完成请求。通常用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。
				302给定地址重定向、304,307拿缓存
				
		|-- 4xx:  客户端看起来可能发生了错误
				403无权限  404地址错误
		
		|-- 5xx:  服务器错误,服务器在处理请求的过程中有错误或者异常状态发生
				500服务器异常


	响应头:
		|--Location:*/*, 用于重定向一个新的位置,包含新的URL地址。表示客户应当到哪里去提取文档。配置302使用
		|--Server:	指明HTTP服务器用来处理请求的软件信息
		|--Refresh: 表示浏览器应该在多少时间之后刷新文档
		|--Transfer-Encoding:数据传送格式
		|--ETag:缓存数据相关,和If-None-Match 配合使用
		|--Expires:数据的缓存时间 -1或0表示不缓存
		|--Cache-Control、Progma:控制缓存
		|--Content-Type、Content-Encoding、Content-Language: 数据类型、压缩格式、语言环境
		|--Content-Disposition:设置下载方式打开
		|--Set-Cookie:发送cookie至客户机
		
-->		



使用Range头(断点下载)

<!--
使用Range头完成断点下载功能:
	请求头格式: Range:bytes=1000-2000  (范围为1000-2000字节)
		Range:bytes=1000- 		(返回1000以后的字节)
		Range:bytes=1000		(返回最后1000字节)

	响应头格式: Accept-Range: 服务器是否支持Range,支持返回bytes,不支持返回none
		 Content-Range: 指定了返回web资源字节范围
		1000-3000/5000 (返回1000-3000字节的数据,一共5000字节数据)

-->



使用Tomcat

1. 需要JAVA环境

2. bin目录下startup.bat启动服务器, 提示Server startup in1361 ms代表启动成功(如果前面没有错误的话)


Tomcat文件结构

          

      

<!--
	bin:---Tomcat一些可执行文件
      |
      |--------startup.bat启动服务器
      |--------shutdown.bat关闭服务器


      conf:---Tomcat服务器的配置文件
      |
      |---------server.xml 服务器网络相关配置
                   |--  <Connector port="8080" protocol="HTTP/1.1" />   --HTTP协议监听端口为8080
                   |--  <Host name="localhost"  appBase="webapps"/>   --默认监听localhost域名
                           |-- 可以在host下配置Context元素,配置对于应用功能
                                    |--path元素映射访问路径
                                    |--reloadable元素配置文件修改是否自动加载
      
      |
      |---------web.xml 服务器资源配置
                   |-- welcome-file-list下的welcome-file标签配置主界面
                   |-- servlet-mapping配置servlet映射
                    |-- 在web.xml下配置Context属性,可以同时配置全局应用
      


      |---------tomcat-users.xml tomcat图形管理器的用户账号
                   |-- <user username="tomcat" password="tomcat" roles="tomcat"/>  roles代表权限  roles="manager"管理员权限
      


     lib:---Tomcat服务器运行需要的jar支持包
     logs:---Tomcat服务器日志
     temp:---Tomcat服务器缓存文件


     webapps:---默认web应用布局文件夹
                    |--在此文件夹压人war文件,服务器会自动解压(使用jar -vcf war包名  类名)


    -->



浏览器与服务器数据交互


 <!--   
1.对于用户输入网址
	|--通过hosts文件直接定位ip地址
	|--通过dns服务器get到ip地址

2.通过ip地址发送http请求

3.服务器相应请求
-->


Demo

需求:使用Tomcat服务器部署应用资源,浏览器输入 www.delphifan.com 进入自定义网页(使用Host重定向)


解决方案

<!--
	1.新建C:\fan
	2.依据web应用的配置格式
		即:	应用目录
				|----静态文件(html.css等)
				|----WEB-INF(文件夹名不可错)	
						|----lib文件夹(java类运行的jar包)
						|----classes文件夹(java文件)
						|----web.xml(web应用配置)
				
			C:\fan
				|---1.html(一段文字 hello Tomcat!)
				|---WEB-INF
						|---web.xml


	3.配置Tomcat对特殊域名关联对于资源应用
			在conf/server.xml文件中配置host属性
	
	4.配置应用web.xml
	
	
	5.修改Windows系统hosts文件完成重定向
			目录	C:\Windows\System32\drivers\etc\hosts
				添加配置  	192.168.0.139		www.delphifan.com		--IP地址为本机地址而变化
		
	-->


	<!-- web.xml配置文件-->

	<?xml version="1.0" encoding="ISO-8859-1"?>

	<web-app 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_3_0.xsd"
	  version="3.0">


	     <welcome-file-list>
	        <welcome-file>1.html</welcome-file>    
	    </welcome-file-list>

	</web-app>



	<!-- conf/server.xml下添加host属性-->

	 <Host name="www.delphifan.com"  appBase="c:/fan">  <!-- name即响应域名,path为映射路径,为空即默认路径。  appBase和docBase为文件根地址 -->
          <Context path="" docBase="c:/fan"/>
      </Host>


      <!--此外因为Tomcat默认监听是的8080端口,而浏览器http默认是80端口,故修改Tomcat监听端口-->

      <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />






Tomcat给定图形管理界面



<!-- conf/tomcat-users.xml 添加图形界面用户属性 
	登录完成后,在线操作即可-->
<user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>






Eclipse下构建Tomcat环境


<!--
bin:---Tomcat一些可执行文件
  |
  |--------startup.bat启动服务器
  |--------shutdown.bat关闭服务器


conf:---Tomcat服务器的配置文件
  |
  |---------server.xml 服务器网络相关配置
  |             |--  <Connector port="8080" protocol="HTTP/1.1" />   --HTTP协议监听端口为8080
  |             |--  <Host name="localhost"  appBase="webapps"/>   --默认监听localhost域名
  |                     |-- 可以在host下配置Context元素,配置对于应用功能
                                |--path元素映射访问路径
                                |--reloadable元素配置文件修改是否自动加载
  
  |
  |---------web.xml 服务器资源配置
  |             |-- welcome-file-list下的welcome-file标签配置主界面
  |             |-- servlet-mapping配置servlet映射
                |-- 在web.xml下配置Context属性,可以同时配置全局应用
  


  |---------tomcat-users.xml tomcat图形管理器的用户账号
  |             |-- <user username="tomcat" password="tomcat" roles="tomcat"/>  roles代表权限  roles="manager"管理员权限
  


 lib:---Tomcat服务器运行需要的jar支持包
 logs:---Tomcat服务器日志
 temp:---Tomcat服务器缓存文件


 webapps:---默认web应用布局文件夹
                |--在此文件夹压人war文件,服务器会自动解压(使用jar -vcf war包名  类名)


-->





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值