Http协议

前言------- 每一天都学一点,每一天就进步一点,加油

什么是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容器,更多的是配合动态资源来做。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值