HTTP协议概述
HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,传输HTML文件。
用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式。
1、查看http协议的工具
1)使用火狐浏览器的firebug插件或谷歌浏览器的”审查元素”(不同浏览器略有不同)
2)使用系统自带的telnet工具(远程访问工具。在Windows命令行模式中使用,如果该命令不能使用,择需要在控制面板->程序->程序和功能->启动或关闭Windows功能,开启该命令。)
2、请求方式
常见的请求方式: GET,POST, HEAD,TRACE, PUT,CONNECT ,DELETE
常用的请求方式: GET和 POST
1) GET 一般用于获取/查询资源信息,而POST一般用于更新资源信息
2) 根据HTTP规范,POST表示可能修改服务器上的资源请求。
3、请求资源
URL:全称是统一资源定位符。
URI:统一资源标记符。
4、Http协议版本
http1.0:当前浏览器客户端与服务器端建立连接之后,只能发送一次请求,一次请求之后连接关闭。
http1.1:当前浏览器客户端与服务器端建立连接之后,可以在一次连接中发送多次请求。(基本都使用1.1)
5、GET和POST区别
<!-- 表单提交 -->
<form action="提交地址" method="GET/POST">
<form>
(1)GET方式提交 由浏览器提交get方式数据到服务器
下面为请求内容
--请求行 get请求请求行和请求主体在一起
GET /test/RequestTest?name=wang&password=111 HTTP/1.1
Host: localhost:8080 --请求头(多个key-value对象)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20180207 Firefox/53.0 -- 当前访问的电脑信息,和浏览器
--可接受的文件类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
--支持的语言
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
--浏览器接受的数据压缩格式
Accept-Encoding: gzip, deflate
-- 当前请求来自于哪里
Referer: http://localhost:8080/test/test.html
-- 浏览器跟服务器连接状态。close: 连接关闭 keep-alive:保存连接。
Connection: keep-alive
Upgrade-Insecure-Requests: 1
(a)地址栏会跟上参数数据。以?开头,多个参数之间以&分割。
(b)GET提交参数数据有限制,不超过1KB。
(c)GET方式不适合提交敏感密码。
(d)浏览器直接访问的请求,默认提交方式是GET方式
(2)POST方式提交
由浏览器提交post方式数据到服务器
--请求行
POST /test/RequestTest HTTP/1.1
--请求头
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20180207 Firefox/53.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 59 -- get提交方式没有() HTTP消息实体的传输长度
Referer: http://localhost:8080/test/test.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
--请求主体
name=wang&password=123456
(a)参数不会跟着URI后面。参数而是跟在请求的实体内容中。没有?开头,多个参数之间以&分割。
(b)POST提交的参数数据没有限制。
(c)POST方式可以提交敏感数据(如提交密码比较安全)。
Servlet编程
1、什么是Servlet?
servlet 是运行在 Web 服务器中的小型 Java 程序(即:服务器端的小应用程序)。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。