HTTP协议:超文本传输协议。它是一个应用层的协议,还有类似FTP(文件传输协议),SMTP(简单邮件传输协议)等。它是一个客户端和服务器端的一个请求和应答的标准。
请求:
首行: [方法] + [url] + [版本]
(1)方法
方法 | 说明 | 支持的HTTP版本 |
---|---|---|
GET | 获取资源 | 1.0,1.1 |
POST | 传输实体主体 | 1.0.,1.1 |
PUT | 传输文件 | 1.0,1.1 |
HEAD | 获得报文首部 | 1.0,1.1 |
DELETE | 删除文件 | 1.0,1.1 |
OPTIONS | 询问支持的方法 | 1.1 |
TRACE | 追踪的路径 | 1.1 |
CONNNECT | 要求用隧道协议连接代理 | 1.1 |
LINK | 建立和资源之间的联系 | 1.0 |
UNLINE | 断开连接关系 | 1.0 |
其中GET和Post方法是最常用的
(2)url:我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。
(3)版本号:现最常用的是HTTP/1.1
Header: 请求的属性,。冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束 。以下是常见的header
- Content-Type: 数据类型(text/html等)
- Content-Length: Body的长度
- Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
- User-Agent: 声明用户的操作系统和浏览器版本信息;
- referer: 当前页面是从哪个页面跳转过来的;
- location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
- Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能
Cookie与session:
Cookie是浏览器存储数据的一种方式
session是服务器描述用户身份信息的一种方式
通常要把Session id放在Cookie中保存,session是通过cookie工作的 - HTTP的状态码
详情请访问:HTTP状态码大全
Body: 空行后面的内容都是Body.
Body允许为空字符串. 如果Body存在, 则在Header中会有一个ContentLength属性来标识Body的长度;
响应:
响应格式与请求基本相似: