一.HTTP协议的概念
-http协议:是一个基于请求与响应模式的,无状态,无连接的应用层协议, 规定了浏览器和服务器之间通信的方式
无状态:协议对事务处理没有记忆能力,服务器后续处理需要前面的信息,那么就得重传,这样可能会造成每次传输的数据量过大
无连接:限制每次连接只能处理一个请求,服务端处理完客户端请求,并响应到客户端后,断开连接
其中, 规定了浏览器该怎样给服务器发送请求信息(也就是请求信息的格式)
也规定了服务器如何给浏览器发送响应信息(也就是响应信息的格式)
- Http工作时遵循的基本原则(了解):
(1)一次请求, 对应一次响应
(2)请求只能由客户端浏览器发起, 服务器只能被动的等待请求, 根据请求做出回应
我们具体来分析请求信息格式与响应信息格式
二.请求信息格式
1.请求行
GET /news/hello.html HTTP/1.1
- GET: 请求方式, 一共有7种, 只用GET和POST提交
- /news/hello.html: 请求资源路径
- HTTP/1.1: 请求所遵循的协议和版本
2.若干请求头
Accept-Encoding: gzip, deflate
Host: localhost
Connection: Keep-Alive
...
Host: localhost – 通知服务器, 浏览器所请求的主机是localhost
3.请求实体内容
如果请求方式是GET提交, 请求实体内容中是没有数据的
如果请求方式是POST提交, 并且请求中携带了数据给服务器, 此时请求实体才会有内容.
4.GET提交和POST提交的区别
(1)GET提交会将发送给服务器的数据拼接在浏览器的地址栏上, 相对不安全!
(2)GET提交通过浏览器地址栏传输数据, 数据量不能太大!
(3)POST提交通过请求实体发送数据, 数据不会显示在地址栏, 相对更安全!!
(4)POST提交通过请求实体发送数据, 理论上,数据量没有限制
三.响应信息格式
1.状态行
HTTP/1.1 200 OK
HTTP/1.1: 协议和版本
200: 状态码(三位的数值), 表示请求处理的结果
200:表示请求处理成功
404:表示客户端请求的资源不存在
500:表示服务器端程序出现了异常
OK: 描述短语, 表示请求处理的结果
2.若干响应头
Content-Type: text/html
Content-Length: 75
Date: Tue, 12 Mar 2019 07:49:51 GMT
...
Content-Type: – 通知浏览器, 服务器响应的数据类型
text/html – 表示服务器响应的是一个html格式的网页
image/* – 表示服务器响应的是一个图片
text/css
3.响应实体内容
<meta charset="utf-8"/>
<h1 style="color:red;">
Hello new....
</h1>
– 响应实体中就是浏览器所请求资源文件的内容,服务器将其发送到浏览器