HTTP
HTTP
HTTP
协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。
ctrl + shift +delete 可清除浏览器缓存
请求与响应
HTTP的交互方式:
- 请求:永远都是客户向服务端发送
- 响应:永远都是服务端向客户端返回
数据的格式:
-
请求时发送的数据称之为请求报文
-
响应时返回的数据称之为响应报文
http长连接和短链接的问题
-
http是应用层协议
-
tcp是传输层协议:面向连接的特点
-
ip是网络层协议
http在使用时,会经常的发送请求,而如果用tcp进行连接,就会进行多次的连接(三次握手,四次挥手)
为了解决这种问题,http1.1版本选择了tcp长连接(等待所有资源请求加载完再关闭连接)
请求和响应报文
报文有规定的格式
- 行:请求行,响应行
- 头:请求头,响应头
- 报文主体:请求报文主体,响应报文主体
请求报文
-
请求行
- GET/POST
- 资源路径?参数
- HTTP/1.1
-
请求头
- 键值对
-
请求体
- 当请求方式为post方式时,请求体中就会存有参数的键值对
响应报文
-
响应行
- HTTP/1.1
- 响应状态码
- 响应状态描述(Tomcat10会被缺省)
-
响应头
- 键值对
- Content-Length:这个属性的值是响应体的长度
- Content-Type:这个属性的值是响应体的具体类型
- 键值对
-
响应体
-
有了响应体的长度之后,我们就能对本地的响应体进行校验,是否完成数据的传输
因为服务器返回的是0,1的编码,需要由服务器告诉客户端用什么类型来解析这个响应体
响应状态码
常见的响应状态码
- 200:请求成功,浏览器会把响应体内容(通常是html)显示到浏览器中
- 302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location指定新请求的URL地址
- 304:使用了本地缓存
- 404:请求的资源没有找到,说明客户端错误的请求了不存在的资源
- 405:请求的方式不允许,例如网站本身的请求方法是get,但是用post请求
- 500:请求资源找到了,但服务器内部出现了错误,比如后台的代码有异常