前言------- 每一天都学一点,每一天就进步一点,加油
什么是Http协议
双方在交互、通讯的时候,遵守的一种规范、规则
Http协议
针对网络上客户端 与 服务器之间传输数据遵守的一种协议。也就是说当客户端传递数据给服务器时,必须带上那些东西。当服务器响应给客户端时候,必须也要带上某些东西
Http协议版本
1.0: 请求数据后,服务器返回数据,然后连接就会断开
1.1: 请求完数据,连接一直保存着,除非客户端 或者 服务器断电或者关闭。但是有一定的时间限制,当你长时间不联系会自动 断开连接。
演示客户段 与 服务器是如何通讯的
问题:当我们注册页面或者在地址栏中输入一个网址,点击回车,就返回给我们一些东西,那么客户端和服务器之间是怎么样进行通讯的呢?
1、安装抓包工具HttpWacth (IE插件)
2、然后打开Tomcat的实例文件
3、打开IE浏览器,点击右上角 >> 选择HttpWacth profeprofessional 使用抓包工具
4、打开tomcat. 输入localhost:8080 打开首页,在首页上找到Example 字样
5、选择 servlet 例子 ---> Request Parameter
6、接着点击Request Parameters 的 Execute超链接
7、执行tomcat的例子,然后查看浏览器和 tomcat服务器的对接细节
Http请求数据的解释
请求数据里面包含了三部分内容: 请求行、请求头、请求体
- 请求行
POST /examples/servlets/servlet/RequestParamExample HTTP/1.1
分为三个部分
POST :表示请求的方式为POST
/examples/servlets/servlet/RequestParamExample :表示客户端要访问服务器的具体的地址,或者说是目录
HTTP/1.1 : 这是以HTTP/1.1的协议进行访问的
- 请求头
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, /
Referer: http://localhost:8080/examples/servlets/servlet/RequestParamExample
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 31
Connection: Keep-Alive
Cache-Control: no-cache
Accept:客户端向服务器表示,我能支持什么样的数据
Referer:真正的请求路径,全路径
Accept-Language:表示支持的语言格式
User-Agent:用户代理,向服务器表明,来访的客户端的信息
Content-Type:提交的数据类型,经过urlencoding编码的form表单的数据
Accept-Encoding:传到服务器的数据会先压缩,然后再在服务器中解压缩获得数据。规定以什么方式压缩数据
Host : 主机地址
Content-Length: 数据长度
Connection : Keep-Alive 保持连接
Cache-Control : 对缓存的操作
- 请求体
浏览器真正的发给服务器的数据
firstname=zhang&lastname=sansan
Http响应数据的解释
相应数据也包含了三个内容:响应行、响应头、响应体
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 673
Date: Fri, 17 Feb 2017 02:53:02 GMT...这里还有很多数据...
- 响应行
HTTP/1.1 200 OK
分为三个部分
HTTP/1.1:响应的协议版本
200:表示状态码,表明这次交互到底是的到什么样的结果
200 : 成功,正常处理,得到数据。
403 : for bidden 服务器拒绝响应
404 : Not Found 没有发现
500 : 服务器异常OK:对应状态码
- 响应头
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 673
Date: Fri, 17 Feb 2017 02:53:02 GMT
Server:服务器是哪种类型 Tomcat
Content-Type:响应给客户端内容的内容类型
Content-Length:响应给客户端的数据的长度
Date:响应的时间或日期
POST请求和Get请求的区别
post请求
1、请求数据不会跟在url后面,而是以流的方式写入数据
2、能够传递的数据没有限制,以为数据是以流的方式写入的,所以在请求头或响应头中有Content-length,要表明数据的大小
现在一般提交数据到服务器的都是POST方式
Get请求
1、请求的数据会跟在url后面,以 ? 分割url 和 数据,数据与数据之间以 & 分隔
2.能够传递的数据比较小,1kb大小。一般从服务器上获取数据,并且客户端不用提交数据的可以使用Get方式
web资源
什么是web资源
顾名思义,web资源就是一种数据或者是文件,。
在http协议当中,规定了请求和响应双方, 客户端和服务器端。与web相关的资源。、
当我们在建立web项目的时候,分为建立静态web工程和动态web工程,静态web工程只是一个单纯的页面,不需要Tomcat服务器,动态web工程是需要Tomcat服务器,所以有相关的web资源,并且分为静态资源和动态资源
- 静态资源
静态资源就是不论何时访问,返回的东西都是固定不变的,比如html js css。
将html文件或者xml文件放在Tomcat服务器,在访问的时候,他不会根据你访问的时间或者访问的动作而返回不同的内容,因为他是不变的,是静态资源。
当然静态资源也需要使用到servlet,只不过是Tomcat里面已经定义好了一个 DefaultServlet
- 动态资源
动态资源必须依靠Servlet/jsp才能够实现,Servlet用于与服务器进行交互,根据不同的动作返回不同的信息,所以是动态的。
Servlet是什么,其实Servlet就是一个java程序,用于接收和响应客户端的http请求,运行在Tomcat服务器上
而Tomcat其实就是一个Servlet容器,更多的是配合动态资源来做。