概念:
Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
特点:
1.基于TCP协议:面向连接,安全
2. 基于请求-响应模型的:一次请求对应一次响应
3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
缺点:多次请求间不能共享数据。
优点: 速度快
请求协议
请求数据格式
请求分为以下几个部分
1.请求行:
- HTTP 的方法,描述请求想干啥。GET 就是想从服务器获取到某个东西。
GET POST 都是方法。HTTP 方法很多,常用的就是 GET / POST 方法
- URL,描述了要访问得到网络上的资源具体在哪儿,它和报文头的Host属性组成完整的请求URL。
- 版本号,HTTP/1.1 表示当前使用的 HTTP 版本号是 1.1。1.1 是当下最主流的版本。
2.请求头
包含了很多行:
- 每一行都是一个键值对,键和值之间使用 :空格 来分割。
- 键值对的个数是不确定的,不同的键值对,表示的含义是不一样的。
3.空行:相当于请求的结束标志
4.请求体: 就是服务器返回给客户端的具体数据。内容可能有各种格式,最常见的就是 HTML
响应协议
响应的大部分,都和请求是一样的。不同的部分如下:
响应行
响应头中的状态码,描述,用来描述此次响应结果
HTTP 提供的状态码有很多,我们讲最常用到的:
响应头
响应报头的格式和请求报头的格式基本一致。像 Content-Type , Content-Length 等属性的含义也和请求中的含义一致。不过响应的 Content-Type 常见取值有这几种:
text/html : body 数据格式是 HTML
text/css : body 数据格式是 CSS
application/javascript : body 数据格式是 JavaScript
application/json : body 数据格式是 JSON