01.HTTP协议

一、HTTP协议

1.1 回顾TCP、UDP协议

OSI参考模型分为七层

  • 物理层—>数据链路层—>网络层—>传输层—>会话层—>表示层—>应用层

TCP/IP参考模型分成四层

  • 链路层 —>网络层—>传输层—>应用层

通信协议:通信协议是指通信双方实体完成通信或服务所必须遵循的规则和约定。

传输层协议

  • TCP(传输控制协议 Transmission Control Protocol)

    • 1 面向连接 (三次握手、四次挥手)
    • 2 安全可靠
    • 3 传输大小无限制
    • 4 效率低
  • UDP(用户数据报协议 User Datagram Protocol)

    • 1 无连接
    • 2 不可靠
    • 3 效率高,支持广播发送
    • 4 传输大小有限制,每个数据包最大是64KB

应用层常见协议

  • HTTP (超文本传送协议 Hyper Text Transfer Protocol)

    • HTTP是万维网上能够可靠地交换数据的重要基础。
    • HTTP使用面向连接的TCP作为运输层协议,保证了数据的可靠传输。
    • 默认端口号80
  • FTP (文件传输协议)

    • FTP是因特网上使用得最广泛的文件传送协议。
    • 默认端口号21
  • TELNET(远程终端协议)

    • TELNET是一个简单的远程终端协议,又称为终端仿真协议。
    • 默认端口号23
  • SMTP:简单邮件传送协议

    • 用来发送邮件
    • 默认端口号25
  • POP3:邮件读取协议

    • 用来接收电子邮件。
    • 默认端口号110
1.2 什么是HTTP

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,是一个基于请求与响应模式的、无状态的、应用层的协议,运行于TCP协议基础之上。

1.3 HTTP协议特点

1、支持客户端/服务器模式。
2、简单快速:客户端只向服务器发送请求方法和路径,服务器即可响应数据,因而通信速度很快。请求方法常用的有GET、POST等。

3、灵活:HTTP允许传输任意类型的数据,传输的数据类型由Content-Type标识。

4、无连接:无连接指的是每次TCP连接只处理一个或多个请求,服务器处理完客户的请求后,即断开连接。采用这种方式可以节省传输时间。

  • HTTP1.0版本是一个请求响应之后,直接就断开了。称为短连接。
  • HTTP1.1版本不是响应后直接就断开了,而是等几秒钟,这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消息,如果过了这几秒钟用户没有发送新的请求,就会断开连接。称为长连接。

5、无状态:HTTP协议是无状态协议。

  • 无状态是指协议对于事务处理没有记忆能力。
1.4 HTTP协议通信流程

(1)客户与服务器建立连接(三次握手)。
(2)客户向服务器提出请求。
(3)服务器接受请求,并根据请求返回相应的文件作为应答。
(4)客户与服务器关闭连接(四次挥手)。

01.HTTP协议

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

HTTP请求报文

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

下面是一个HTTP请求的例子:

01.HTTP协议

HTTP响应报文

HTTP响应报文与HTTP请求报文相似,HTTP响应也由4个部分组成:
1、状态行
2、响应头(Response Header)
3、空行
4、响应正文

下面是一个HTTP响应的例子:

01.HTTP协议

常见状态码

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