JavaWEB10 Http协议 & Servlet

案例: 客户端与服务器端之间的通讯 (with HttpWatch)

  1. 安装抓包工具HttpWatch(IE & 火狐插件 支持win10 ie11的httpwatch pro,亲测可用,点击下载
  2. 打开tomcat,进入host主页,选择Example
  3. 选择servlet例子 → Request Parameter 
  4. 开启HttpWatch工具,同时运行tomcat提供的例子

JavaWEB10 Http协议 & Servlet

一.  Http协议 (详细定义可查Http协议详解

1. Http请求数据解释 

> 请求的内容里面包含三个部分内容:请求行 / 请求头 / 请求体

1.1 请求行 :

POST /examples/servlets/servlet/RequestParamExample HTTP/1.1
  • POST : 请求方式 ,以post去提交数据    
  • /examples/servlets/servlet/RequestParamExample :请求的地址路径 , 就是要访问哪个地方。
  • HTTP/1.1 :协议版本

1.2 请求头

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: gzip, deflate : 压缩算法 。 
  • Host : 主机地址
  • Content-Length: 数据长度
  • Connection : Keep-Alive 保持连接
  • Cache-Control : 对缓存的操作

1.3 请求体:浏览器真正发送给服务器的数据

> 发送的数据呈现的是key=value ,如果存在多个数据,那么使用 & :如firstname=zhang&lastname=sansan

2. Http响应数据解析

> 请求的数据里面包含三个部分内容 : 响应行 、 响应头 、响应体

2.1 响应行:

HTTP/1.1 200 OK
协议版本  状态码

常见状态码:

  • 200:成功,正常处理,得到数据
  • 403:For Bidden 拒绝
  • 404:Not Found
  • 500:服务器异常

2.2 响应头

Server: Apache-Coyote/1.1  服务器是哪一种类型
Content-Type: text/html;charset=ISO-8859-1  服务器返回给客户端的内容类型
Content-Length: 669  返回的数据长度
Date: Tue, 18 Dec 2018 10:07:36 GMT  通讯的日期,相应的时间

3 Get 和 Post 请求区别:请求路径不同 / 带上的数据不同

JavaWEB10 Http协议 & Servlet

二. Servlet

1. Web资源

在http协议当中,规定了请求和响应双方,客户端和服务器端。与web相关的资源有两种分类

  • 静态资源:html \ js \ css
  • 动态资源:servlet \ jsp