http协议:基于请求响应的过程中的一个规则。
请求:浏览器—>服务器 请求报文
响应:服务器—>浏览器 响应报文
请求报文格式:
请求行
请求头
请求体(正文)
响应报文格式:
响应行
响应头
响应体(正文)
1.请求报文
(1)请求行
请求方法字段、URL字段和HTTP协议版本
例如:GET /index.htmlHTTP/1.1
get方法将数据拼接在url后面,传递参数受限
请求方法:
GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
(2)请求头(key-value形式):指的是浏览器想要告诉服务器的一些信息
User-Agent:产生请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Host:主机地址
(3)空行
发送回车符和换行符,通知服务器以下不再有请求头
(4)请求体
get请求中没有请求体,参数直接放置在url中;post请求一般称为表单请求,会把数据以key-value形式发送
例如请求数据:
1 GET/sample.jspHTTP/1.1
2 Accept:image/gif.image/jpeg,/
3 Accept-Language:zh-cn
4 Connection:Keep-Alive
5 Host:localhost
6 User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
7 Accept-Encoding:gzip,deflate
8
9 username=jinqiao&password=1234
第一行为http请求行,包含方法,URL 和http版本
2-7为请求头,包含浏览器,主机,接受的编码方式和压缩方式
第8行表示一个空行 表示请求头结束,这个空行是必须的
第9行是数据体,比如是需要查询的信息。
2.响应报文
http响应由三个部分组成分别是响应行,响应头,响应体。
(1)响应行是由:HTTP-Version+Status-Code+Reason-Phrase
比如:HTTP/1.1 200 ok
分别表示http版本 + 状态码 + 状态代码的文本描述
状态码:
1xx
指示信息–表示请求已接收,继续处理
2xx
成功–表示请求已被成功接收、理解、接受
3xx
重定向–要完成请求必须进行更进一步的操作。
4xx
客户端错误–请求有语法错误或请求无法实现。
5xx
服务器端错误–服务器未能实现合法的请求。
(2)响应头(key:value):包含服务器类型,日期,长度,响应的内容类型(告诉浏览器使用哪种方式解析响应的资源)等
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:13:33 GMT
Content-Length:112
Content-Type:text/html 返回页面+数据
(或者是application/json 只返回数据)
Last-Moified:Mon,6 Oct 2003 13:23:42 GMT
(3)响应正文:就是服务器返回的HTML页面或者json数据
总结:1.浏览器中通过HTTP协议可以访问到部署在tomcat服务器中的servlet程序。
2.tomcat服务器厂商和java web开发者,共同按照JAVA EE规范开发代码。
参考博客:https://www.cnblogs.com/engeng/articles/5959335.html
https://www.cnblogs.com/qiang07/p/9304771.html