HTTP
协议的主要特点
-
简单快速
每个资源(比如图片,页面)都是通过
url
来定位.这都是固定的,在http
协议中,处理起来也比较简单,想访问什么资源,直接输入url
即可. -
灵活
http
协议的头部有一个数据类型,通过http
协议,可以完成不同数据类型的传输. -
无连接
连接一次就会断开,不会继续保持连接.
-
无状态
客户端和服务器端是两种身份.第一次请求结束后,就断开了;第二次请求时,服务器端并没有记住之前的状态,也就是说,服务器端无法区分客户端;
有的时候,我们访问网站时,网站能记住我们的账号,这是通过其他手段(比如
session
)做到的,并不是http
协议能做到的.
HTTP
报文的组成部分
http
报文包括:请求报文
和响应报文
.
-
请求报文包括:
- 请求行:包括请求方法,请求
URL
,HTTP
协议及版本; - 请求头
- 空行:当服务器在解析请求头的时候,如果遇到了空行,则表明,后面的内容是请求体
- 请求体:数据部分
- 请求行:包括请求方法,请求
-
响应报文包括:
- 状态行:
http
协议及版本、状态码及状态描述。 - 响应头
- 空行
- 响应体
- 状态行:
HTTP
请求头
请求头 | 举例 | 说明 |
---|---|---|
Accept |
Accept: image/jpeg, application/x-ms-application, ..., */* |
可接受的响应内容类型(Content-Type) |
Referer |
Referer: http://localhost:8080/user/register.html?code=100 |
表示浏览器所访问的前一个页面,可以认为是之前访问页面的链接将浏览器带到了当前页面。Referer 其实是Referrer 这个单词,但RFC 制作标准时给拼错了,后来也就将错就错使用Referer 了。 |
Accept-Language |
Accept-Language: zh-CN |
可接受的响应内容语言列表 |
User-Agent |
User-Agent: Mozilla/4.0 |
浏览器的身份标识字符串 |
Content-Type |
Content-Type: application/x-www-form-urlencoded |
请求体的MIME类型 (用于POST 和PUT 请求中) |
Host |
Host: localhost:8080 |
表示服务器的域名以及服务器所监听的端口号.如果所请求的端口是对应的服务的标准端口80 ,则端口号可以省略 |
Connection |
Connection: Keep-Alive |
客户端(浏览器)想要优先使用的连接类型 |
Cache-Control |
Cache-Control: no-cache |
用来指定当前的请求/回复中的,是否使用缓存机制。 |
Cookie |
Cookie: JSESSIONID=215R487HFDSH4 |
由之前服务器通过Set-Cookie 设置的一个HTTP协议Cookie |
HTTP
方法
GET
:获取资源POST
:传输资源PUT
:更新资源DELETE
:删除资源HEAD
:获得报文首部