文章目录
概述
HTTP协议,也叫超文本传输协议,是一种详细规定了浏览器和万维网服务器之间相互通信的规则。
HTTP通常承载于TCP协议之上,有时候也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。
HTTP是一个应用层协议,由请求和相应构成,是一个标准的客户端服务器类型。
HTTP默认端口号是80,HTTPS的端口号是443。
特点
HTTP是一个无状态的协议。无状态是指协议对于事物处理没有记忆能力,缺少状态意味着如果后续处理需要前面的消息,则他必须重传。
HTTP是无连接的,限制每次连接只处理一个发送请求,服务端处理完客户端的请求,并收到客户端的应答后,就立即断开,两种之间的传输不是连续性的。
工作流程
- 首先客户机和服务器(默认端口80)建立一个TCP连接,HTTP的工作开始。
- 建立连接后,客户机通过TCP套接字发送一个请求给服务器,请求的格式:一个请求行、若干请求头、一个空行以及实体内容。
- 服务器接收请求,返回相应信息。其格式为一个状态行、若干响应头、一个空行以及实体内容。
- 客户机接收数据,若为HTTP0.9/1.0,则直接释放连接,若为HTTP1.1 ,默认情况下connection模式为keepalive,所以该连接会保持一段时间,在该时间内可以继续接收请求,若connection模式为close,则服务器主动关闭连接。
- 客户端处理数据。
HTTP请求
GET
POST
请求行
请求方式有七种,POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT。
常用的两种:GET、POST。
若没有设置,默认情况下向服务器发送的都是GET请求,如果需要更改请求方式,可通过更改表单的提交方式实现。
GET方式可以在URL地址后以?的形式带上交给服务器的数据,多个数据之间用&分隔。
GET的特点:在URL地址后附带的参数值有限的,其数据容量通常不超过1k。
POST方式,则可以在请求的实体内容中向服务器发送数据。
请求头
紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息。如Host是请求的目的地址。
空行
空行,请求头部后面的空行是必须的
实体内容
可以添加任意的其他数据。
HTTP的不同请求方法
方法 | 作用 |
---|---|
GET | 请求指定的页面信息,并返回实体主体 |
POST | 向指定资源提交数据进行处理请求 |
HEAD | 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头 |
PUT | 从客户端向服务器传送的数据取代指定指定的文档内容 |
DELETE | 请求服务器删除指定的页面 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器 |
OPTIONS | 允许客户端查看服务器性能 |
TRACE | 回显服务器收到的请求,主要用于测试和诊断 |
HTTP响应
HTTP响应也有四个部分组成:状态行、消息报头、空行、相应正文</