闲谈Tomcat服务器与HTTP协议

一、Tomcat

1、平常的javaweb开发中,都把项目部署到Tomcat中,这里对Tomcat的架构和端口的配置,来谈谈;

如下图:


上面的这个图对应着Tomcat的一个结构的配置文件server.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
	<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
	<Listener SSLEngine="on"
		className="org.apache.catalina.core.AprLifecycleListener" />
	<Listener className="org.apache.catalina.core.JasperListener" />
	<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
	<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
	<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
	<GlobalNamingResources>
		<Resource auth="Container" description="User database that can be updated and saved"
			factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase"
			pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase" />
	</GlobalNamingResources>
	<Service name="Catalina">
		<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
			redirectPort="8443" />
		<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

		<Engine defaultHost="localhost" name="Catalina">
			<Realm className="org.apache.catalina.realm.LockOutRealm">
				<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
					resourceName="UserDatabase" />
			</Realm>

			<Host appBase="webapps" autoDeploy="true" name="localhost"
				unpackWARs="true">

				<Valve className="org.apache.catalina.valves.AccessLogValve"
					directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log."
					suffix=".txt" />

				<Context docBase="D:\Javatool\apache-tomcat-7.0.62\webapps\babasport12"
					path="/babasport12" reloadable="true"
					source="org.eclipse.jst.jee.server:babasport12" />
			</Host>
		</Engine>
	</Service>
</Server>
从这个文件中就可以看出Tomcat的结构与上面的图像结构的描述;

二、HTTP协议

1、web项目中,在客户端(浏览器端)与服务器端进行数据的请求响应的时候,都是通过一个协议来进行通讯的,这个就像我们在从前的时候写信一样,都是遵循着写信的规范格式,来方便书信的交流,HTTP协议也是一样的意义,通过规规定一种浏览器与服务器交流格式,来达到通讯的规范流畅;

2、HTTP协议的请求格式





具体的请求头的说明:

3、HTTP的响应格式

具体说明一下:


三、HTTP协议与HTTPS协议的区别

HTTPS协议是经过在HTTP协议的基础上,经过一系列的加密来传输数据的;

例如:

  1. 一个传输的签名,用来辨别客户端和服务端是不是属于同一个访问者;
  2. 一个第三方的数字证书,用来保存我们自己创建的公私钥;
  3.  数据传输的加密算法,伴随着加密过程和解密过程;



这里的加密算法的作用是保证数据进行可行的加密和解密过程,数字证书的过程是为了防止加密算法的公私钥窃取进行的第三方加密,数字签名的过程是为了保证数字证书这个公私钥是自己的公私,也是再防窃取说明的;




这里有一篇比较好的文章说明HTTPS这个加密协议:http://mp.weixin.qq.com/s/7E4zyn3byTK59RF0kiD9kA



猜你喜欢

转载自blog.csdn.net/liangwanmian/article/details/79153459