120 Servlet_3 _HTTP协议
一、HTTP协议
1.1什么是HTTP
- 超文本传输协议(HTTP, HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,是一个基于请求与响应模式的、无状态的、应用层的协议,运行于TCP协议基础之上。
1.2 HTTP协议特点
-
支持客户端(浏览器)/服务器模式。
-
简单快速:客户端只向服务器发送请求方法和路径,服务器即可响应数据,因而通信速度很快。请求方法常用的有GET、POST 等。
-
灵活:HTTP允许传输任意类型的数据,传输的数据类型由Content-Type标识。
-
无连接:无连接指的是每次TCP连接只处理一个或多个请求,服务器处理完客户的请求后,即断开连接。采用这种方式可以节省 传输时间。
- HTTP1.0版本是一个请求响应之后,直接就断开了。称为短连接。
- HTTP1.1版本不是响应后直接就断开了,而是等几秒钟,这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消 息,如果过了这几秒钟用户没有发送新的请求,就会断开连接。称为长连接。
-
无状态:HTTP协议是无状态协议。
- 无状态是指协议对于事务处理没有记忆能力。
1.3 HTTP协议通信流程
- 客户与服务器建立连接(三次握手)。
- 客户向服务器发送请求。
- 服务器接受请求,并根据请求返回相应的文件作为应答。
- 客户与服务器关闭连接(四次挥手)。
HTTP原理 |
---|
1.4请求报文和响应报文【了解】
1.4.1 HTTP请求报文
- 当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息(请求报文),HTTP请求信息由4部分组成:
- 请求行 请求方法/地址URI协议/版本
- 请求头(Request Header)
- 空行
- 请求正文
请求报文 |
---|
1.4.2 HTTP响应报文
- HTTP响应报文与HTTP请求报文相似,HTTP响应也甶4个部分组成:
- 状态行
- 响应头(Response Header)
- 空行
- 响应正文
响应报文 |
---|
1.4.3常见状态码
状态代码 | 状态描述 | 说明 |
---|---|---|
200 | 0K | 客户端请求成功 |
302 | Found | 临时重定向 |
403 | Forbidden | 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因 |
404 | Not Found | 请求的资源不存在,例如,输入了错误的URL。 |
500 | Internal Server Error | 服务器发生不可预期的错误,导致无法完成客户端的请求。 |