来认识认识——HTTP协议
前言:本文章是Java Web后端技术系列的第三篇,主要介绍Tomcat服务器,接下来将持续更新,感兴趣的小伙伴欢迎持续关注。因为我也是刚接触Java web方面的知识,尚有许多不足,如有错误欢迎指正!
介绍
特点:
- 基础协议:TCP协议
- 默认端口:80
- 基于请求/响应模式:请求与响应成对,先有请求后有响应
- 无状态协议:多次请求之间相互独立,不能交互数据
增强版HTTPS协议:本质上是HTTP协议,对通信数据进行了加密,默认端口是443
协议详解
请求报文详解
请求报文包括:
- 请求行
- 请求头
- 空行
- 请求体
请求行
请求行格式:请求方式 资源路径 协议/版本
例如:POST /web01/login.html HTTP/1.1
请求行必须在HTTP请求格式的第一行。
请求方式:协议规定7种,常用两种:GET和POST
GET请求:
将请求参数追加在URL后面,不安全。例如:login.html?username=tom&password=1234
URL长度限制GET请求方式的数据大小。
没有请求体
POST请求:
请求参数显示请求体处,较安全。
请求数据大小没有限制。
只有表单设置为method=”post”才是post请求.其他的都是get请求。
请求头
描述了客户端向服务器发送请求时使用的http协议类型,所使用的编码,以及发送内容的长 度,referer,等等。请求头是用键值对key:value表示数据的
常见请求头 | 描述 |
---|---|
Referer | 浏览器通知服务器,当前请求来自何处。如果是直接访问,则不会有这个头。常用 于:防盗链 |
Cookie | 与会话有关技术,用于存放浏览器缓存的cookie信息。 |
User-Agent | 浏览器通知服务器,客户端浏览器与操作系统相关信息 |
请求体
通常情况下,只有POST请求方式才会用到请求体,请求体中都是用户表单提交的数据,每一项数据都使用键值对的方式,多组键值对之间用&
连接,比如:username=tom&password=1234
。
请求报文展示
打开浏览器,右键–>检查–>网络,然后访问随便一个网站,比如www.baidu.com
,然后点击任意一个请求(如下图)就可以打开请求的详细信息了。
请求行
请求头
响应报文详解
响应报文包括:
- 响应行
- 响应头
- 空行
- 响应体
响应行
例如:HTTP/1.1 200 OK
格式:协议/版本 状态码 状态码描述
状态码:服务器与浏览器用于确定状态的固定数字号码
200 :请求成功。
302 :请求重定向。
304 :请求资源没有改变,访问本地缓存。
404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。
500 :服务器内部错误。通常程序抛异常。
响应头
由来描述服务器会给客户端浏览器的content的一些描述,比如我是什么服务器、使用什么编码、返回的内容有多长等等。
响应头也是用键值对的形式
常见响应头 | 描述 |
---|---|
Location | 指定响应的路径,需要与状态码302配合使用,完成跳转。 |
Content-Disposition | 文件下载的时候使用。通过浏览器以下载方式解析正文 |
Set-Cookie | 与会话相关技术。服务器向浏览器写入cookie |
Refresh | 定时刷新 |
响应体
响应体,就是服务器发送给浏览器的正文。