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原理
120 Servlet_3 _HTTP协议

1.4请求报文和响应报文【了解】

1.4.1 HTTP请求报文

  • 当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息(请求报文),HTTP请求信息由4部分组成:
    • 请求行 请求方法/地址URI协议/版本
    • 请求头(Request Header)
    • 空行
    • 请求正文
请求报文
120 Servlet_3 _HTTP协议

1.4.2 HTTP响应报文

  • HTTP响应报文与HTTP请求报文相似,HTTP响应也甶4个部分组成:
    • 状态行
    • 响应头(Response Header)
    • 空行
    • 响应正文
响应报文
120 Servlet_3 _HTTP协议

1.4.3常见状态码

状态代码 状态描述 说明
200 0K 客户端请求成功
302 Found 临时重定向
403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
404 Not Found 请求的资源不存在,例如,输入了错误的URL。
500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。