什么是协议? 比如你看到我这一篇博客,你认识上面的字,都是中文或者英文,这是一种协议,比如我对你说话,你能听懂,沟通无障碍,就证明我们遵守同一种协议-普通话协议。
W3C 万维网联盟组织:
万维网之父:蒂姆·伯纳斯·李
负责制定标准的:HTTP HTML4.0 HTML5 XML DOM等规范都是W3C制定的。
HTTP协议:是W3C制定的一种超文本传输协议
HTTP协议就Servlet而言包括了:请求协议,相应协议
HTTP的请求协议 (前端发给服务器)
包括四部分:请求行,请求头,空白行,请求体。
Get请求:
GET /servlet05/getServlet?username=lucy&userpwd=1111 HTTP/1.1 请求行
Host: localhost:8080 请求头
Connection: keep-alive
sec-ch-ua: "Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost:8080/servlet05/index.html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
空白行
请求体
Post请求:
POST /servlet05/postServlet HTTP/1.1 请求行
Host: localhost:8080 请求头
Connection: keep-alive
Content-Length: 25
Cache-Control: max-age=0
sec-ch-ua: "Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
Origin: http://localhost:8080
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost:8080/servlet05/index.html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
空白行
username=pisi&userpwd=62877 请求体
1.请求行
由三部分组成:
第一部分:请求方式
get、post.....等等
第二部分:URL
理解URI和URL
URI:统一资源标识符。代表网络中某个资源的名字。但是无法定位
URL:统一资源定位符。代表网络中某个资源,是可以定位的
第三部分:版本号
2.请求头
包含请求的具体信息
包括:请求主机,端口,浏览器,cookie等等
3.空白行
一条空白语句用于分割请求头和请求体
4.请求体
向服务器发送的具体信息,想要得到的资源。
HTTP相应协议 (服务器通过代码地址解析提供客户想要的东西)
包括四部分:状态行,响应头,空白行,响应体
1.状态行
由版本号(http/2.0)、状态码(404、405、521)、状态描述信息(not found、ok)组成
2.响应头
包括响应的内容类型、长度、时间
3.空白行
用于分割响应头和响应体
4.响应体
响应的正文和一个超长字符串,这个字符串根据前端html渲染解释执行,并且展示
POST、GET
POST是危险的,因为他是向服务器传送数据,如传输的过程中被修改了嵌入恶意代码。
且post不支持缓存
get请求是安全的,因为他只向服务器获取数据不会威胁到服务器。
get支持缓存
如何选择get和post呢?
大部分表单选择post、敏感信息用post 因为get会以明文的形式显示到浏览器地址栏、数据上传post 其余全部get。
Servlet XML配置:
1.配置欢迎页面 在web.xml下添加如下代码
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
2.配置常规响应页面 在web.xml下添加如下代码