http协议
http协议介绍
问题:什么是协议
协议就是规定双方如何通信。
http协议:
超文本传输协议 HyperText transfer protocol 是互联网上应用最为广泛的一种网络协议,所有的www都必须遵守这个标准。
简单说,我们在做javaweb开发时,浏览器与服务器要通信,它们之间遵守就是http协议。
http协议是建立在TCP协议基础上。http协议也是基于请求与响应的模型,http协议默认的端口是80.
演示使用抓包工具来查看http协议信息
1.创建一个web工程 httpdemo,在工程中创建一个hello.html页面。
2.将工程部署到tomcat中,打开浏览器查看hello.html页面
3.安装一个httpwatch抓包工具
4.启动有一空白行httpwatch抓包工具
通过抓包工具可以看到如下信息
http请求:
http响应内容
http请求
http请求分为三部分:
1. 请求行
第一个:请求方式 GET POST
第二个:请求资源路径
第三个:协议版本
笔试题:GET与POST请求区别?
1. get只能传递1kb以下数据,POST可以传递大数据。
2. get请求如果有请求参数,那么,浏览器上会显示请求参数
post请求不会,所以post请求会更安全。
3. 如果是get请求,有请求参数,请求参数是在http请求行的资源路径上。
如果是post请求,有请求参数,请求参数是在请求正文中
2. 请求头
格式 : 名称:值1,值2,….
重要的http请求头
它是用于描述请求是从哪个位置来的,使用它可以进行防盗链。
通过它可以判断浏览器
这个头可以与http响应头last-modify组合完成服务器缓存策略
3. 请求正文
请求正文与请求行之间有一空白行,对于请求正文,只有在请求方式是POST的情况下,并且有请求参数,才会有请求正文。
http响应
http响应由三部分组成
1. 响应行
在响应行中最重要的是响应状态码
一共分为五种
1xx 代表浏览器向服务器发送请求,服务器没有做任何操作
2xx 服务器正确响应,并且响应成功。
3xx 代表浏览器向服务器发送主求,服务器完成一部分工作,通知浏览器继续执行其它的操作。
4xx 浏览器错误
5xx 服务器端错误
最常见的状态码
200 响应成功
302 可以与一个响应头location组合完成重定向。
304 代表服务器端资源没有改变。
404 资源访问不到
405 浏览器请求时请求的方式get/post没有与之对应的方法
500 服务器端错误。
2. 响应头
响应头格式 name:值1,值2,…
Location 它与302状态码组全可以完成重定向功能。(response对象)
Content-type:服务器响应回的数据mimeType类型。
refresh 可以实现定时跳转
content-disposition 可以完成文件下载
expires
cache-control
pragma
这三个头可以实现禁用浏览器缓存。
Last-modified 它与304状态码及http请求头 if-modify-since组合完成服务器缓存策略。
3. 响应正文
对于http响应正文,它是真正被浏览器解析并显示在浏览器上的。