1.概念:Hyper Text Transfer Protocol 超文本传输协议 *传输协议:定义了客户端和服务器端通信时,发送数据的格式。 *特点: 1.基于TCP/Ip的高级协议 2.默认端口号:80 3.基于请求/响应模型:一次请求对应一次响应 4.无状态的:每次请求之间相互独立,不能交互数据 2.历史版本: 1.0:每一次请求响应都会建立新的连接 1.1:复用连接 3.请求消息数据格式 1.请求行 请求方式 请求url 请求协议/版本 2.请求头 3.请求空行 4.请求体 *字符串格式
响应消息:服务器端发送给服务器端的数据 *数据格式: 1.响应行 1.组成:协议/版本 响应状态 状态码描述 2.相应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态 1.状态码都是三位数字 2.分类 1.1xx:服务器接收客户端消息,但没有接收完全,等待一段时间后,发送1xx状态码 2.2xx:成功。代表200 3.3xx:重定向。代表(状态码) 302(重定向) 304(访问缓存) *重定向:客户端向服务器发送请求,但是服务器的某个资源完成不了这个请求,让客户端去请求另一个资源来完成请求。就是一个请求转发的过程。 *实现方式: 1.告诉浏览器重定向,状态码302 2.告诉浏览器B资源的路径,相应头location:B资源的路径 4.4xx:客户端错误(请求错误) *代表: *404:(请求路径没有对应的资源) *405:请求方式没有对应的doXxx方法 5.5xx:服务器端错误。代表: 500(服务器内部出现异常) 2.响应头 1.格式: 头名称 : 值 2.常见的响应头: 1.Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式(用于解决乱码问题) 2.Content-Length:字节的个数 3.Content-disposition:服务器告诉客户端以什么格式打开响应体数据 *in-line:默认值,在当前页面内打开 *attachment:filename=xxx; 以附件形式打开响应体。在文件下载时会使用。 3.响应空行:它的作用是通过一个空行,告诉服务器请求头部到此为止。 4.响应体:传输的数据
*路径写法: 1.路径的分类 1.相对路径:通过相对路径不可以确定唯一资源 *如: ./index.html *不以/开头的路径,以.开头的路径。 *规则:找到当前资源和目标之间的相对位置关系 ./表示当前目录 ../表示后退以及目录 2.绝对路径:通过绝对路径可以确定唯一 资源 *如:http://localhost:8080/day15/ResponseDemo1 *以/开头的路径 *规则:判断定义的路径是给谁用的?判断请求是从哪发出 *给客户端浏览器使用:需要加虚拟目录(虚拟目录表示项目的访问路径) *建议虚拟目录动态获取:request.getContextPath() *<a>,<form>,重定向... *给服务器使用的:不需要加虚拟目录 *转发路径