1.什么是http协议?
http协议是w3c(万维网联盟)组织制定的一种应用层协议,规定了浏览器与web服务器之间如何通信以及通信的数据格式
2.浏览器与服务器之间如何通信?
1)建立连接
2)HttpServletRequest接收请求
3)HttpServletResponse响应请求
4)关闭连接
一次请求一次连接(一次交互),web服务器可以利用有限的连接为尽可能多的客户端服务。l
3.请求数据包组成?
1)请求方式+请求资源u+协议版本
GET /sayHi HggTTP/1.1
2)消息头(若干)n
消息头是一些键值对,一般由w3c定义。通信双方通过消息头来传递一些特定的含义,比如浏览器可以通过消息头来发送User-Agent来告诉服务器浏览器的类型和版本。大部分自动生成,有时也需要自己添加消息头。
Host:localhost
Connection:Keep-Alive
User-Agent:Mozilla/4.0
Accept:image/gif,image/jpef
3)实体内容
只有当请求方式为post请求时,实体内容才有数据(即请求参数)
(Empty body)
4.响应数据包组成?
1)状态行
协议类型+版本+状态码+状态描述
HTTP/1.1 200 ok
2)消息头
web服务器返回一些消息头给浏览器,比如,返回Content-Type消息头给浏览器,告诉浏览器返回的数据类型和字符集
Data:...
Server:Apache/2.0.45
Last-Modified:...
Content-Length:105
Content-Type:text/html
3)实体内容
程序处理的结果
<html>
<head>
<title>sayHi</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
5.servlet如何处理http议?
1)如何控制通信数据?
当浏览器发送请求给服务器时,服务器接收到http请求,通信数据有web服务器封装和提供。这些信息会被解释为2个对象。
与请求数据相关的请求对象HttpServletRequest
与响应数据相关的响应对象HttpServletResponse
2)HttpServletRequest类型对象
HttpServletRuquest类型对象代表客户端请求,客户端通过http协议访问服务器时,客户端所有的请求消息都封装在了这u个对象中,通过这个对象的方法可以获取相关的请求数据。
比如:
a.读取和写入http请求数据(请求行、消息头)d
b.取得和设置Cookies
c.取得路径信息
d.标识http会话
e.实现请求转发
3)HttpServletResponse类型对象
HttpServletResponse类型对象代表给客户端的响应,封装了http的响应数据,通过这个对象可以设置状态行、消息头、实体内容。
比如:
a.设置对客户端的输出内容
b.设置响应的状态行
c.设置浏览器的解码方式
d.设置Cookies
e.实现重定向