
HTTP协议系列教材 (一)- 教程
HTTP 超文本传输协议 Hyper Text Transfer Protocol
当我们在浏览器的地址栏输入一个地址的时候,就能够访问服务器的某个页面
这个过程本身就是两个应用程序之间的交互,一个应用程序是浏览器,另一个应用程序是服务器。
协议是什么? 协议就是不同的应用程序之间按照事先做好的约定进行的通信。 这样就能互相读懂对方的意思。
浏览器和WEB服务器之间,使用的就是一种叫做HTTP的协议。 这样是BS (Browser Server )架构模型的基础
步骤1:HTTP协议
步骤 1 : HTTP协议
HTTP协议由请求和响应两种类型组成

更多内容,点击了解: http://how2j.cn/k/http/http-tutorials/568.html?p=7870
HTTP协议系列教材 (二)- 借助FireFox火狐调试工具学习HTTP协议
对于HTTP协议的学习,我们将借助火狐浏览器FIREFOX的调试工具来实际观察浏览器和服务器之间传输数据的具体内容
步骤1:下载 FireFox
步骤2:打开调试工具
步骤3:观察 request response
步骤 1 : 下载 FireFox
下载火狐浏览器,打开Firefox下载页面,在右侧下载

步骤 2 : 打开调试工具
快捷键 F12

步骤 3 : 观察 request response
打开某个网页
就可以看到浏览器和服务器传输的协议内容了
接下来的章节会分别对请求消息和响应消息做讲解

更多内容,点击了解: http://how2j.cn/k/http/http-debug/569.html?p=7870
HTTP协议系列教材 (三)- 通过Firefox火狐调试工具观察 HTTP 请求协议
请求消息 由 请求行,请求头部,空行和请求数据4部分组成
步骤1:请求行
步骤2:请求头部
步骤3:请求数据
示例 1 : 请求行
打开网页 ,并新增一条英雄数据
http://127.0.0.1/addHero.html
通过调试工具可以看到两个重要信息:
POST addHero
提交的method是POST,访问的路径是addHero

示例 2 : 请求头部
请求头部信息提供了如下信息:
Host: 主机名
User-Agent: 浏览器基本资料
Accept: 浏览器能够识别的响应类型
Accept-Language: 浏览器默认语言
Accept-Encoding: 浏览器能够识别的压缩方式
Referer: 来路页面, /addHero 这个路径是通过addHero.html这个页面跳转过来的。
Connecton:是否保持连接
这些信息,也可以在HeroAddServlet中,通过 request对象获取

示例 3 : 请求数据
点开Params页,可以看到本次提交数据所传递的参数

更多内容,点击了解: http://how2j.cn/k/http/http-request/570.html?p=7870
HTTP协议系列教材 (四)- 通过Firefox火狐调试工具观察 HTTP 响应协议
响应信息由状态行,消息报头,响应正文组成
步骤1:状态行
步骤2:消息报头
步骤3:响应正文
示例 1 : 状态行
访问页面
http://127.0.0.1/listHero
可以看到响应代码是 200 OK,即表示响应成功
除了200还有很多其他常用的代码,请查看 响应代码 章节

示例 2 : 消息报头
消息报头中提供如下信息:
Content-Length: 表示长度
Content-Type: 内容格式
Date: 日期
Server: 服务器类型

示例 3 : 响应正文
如图所示,在响应正文里就会是具体的html内容了。
当然访问不同的页面,就不一定是html,有可能是css, js,甚至图片了。

更多内容,点击了解: http://how2j.cn/k/http/http-response/571.html?p=7870
HTTP协议系列教材 (五)- 通过Firefox火狐调试工具观察 HTTP常见 响应代码
http协议中的响应代码从 1xx ~ 5xx,一共有41种,不过很多状态码很少会接触到。 下面把开发过程中常接触到的讲解一遍
步骤1:200
步骤2:301
步骤3:302
步骤4:304
步骤5:404
步骤6:500
步骤7:更多代码一一览。。。
步骤 1 : 200
200 表示响应成功了,比如打开页面, 就会看到200响应码
http://127.0.0.1/login.html

步骤 2 : 301
301 表示客户端跳转,永久性的跳转
为了实现301跳转,在Servlet中应该使用如下代码:
response.setStatus(301);
response.setHeader("Location