HTTP协议
1.1 HTTP协议概述
1.1.1 什么是HTTP协议?
HTTP协议规定了浏览器和服务器之间通信的方式(或通信的规则)
具体说,HTTP协议中主要规定了两个内容:
(1)规定了浏览器该如何给服务器发送请求信息(即请求信息的格式)
(2)同时也规定了服务器该如何给浏览器做响应信息(即响应信息的格式)
Http工作时遵循的基本原则(了解):
(1) 一次请求只对应一次响应
(2) 只能是浏览器向服务器发送请求, 服务器只能等待浏览器的请求, 再根据请求做出回应
1.2 HTTP协议详解
1.2.1 HTTP请求
1、请求行(包含了请求方式、请求资源的路径、遵循的协议及版本)
GET /news3/1.html HTTP/1.1 |
---|
GET:请求方式,在HTTP协议中一共规定了7种请求方式,其中5中不常用, 只用GET和POST |
/news3/1.html:请求资源的路径,表示浏览器请求的是news3下的hello.html这个网页文件 |
HTTP/1.1:浏览器发送请求时所使用的协议及版本 |
2、若干请求头(请求头遵循一个格式:key:value)
http协议中请求头非常多,下面列出常见的请求头及其功能:
Accept: text/html,image/*
– 通知服务器当前浏览器可以接受那些格式的数据
Host: localhost
–浏览器所访问的虚拟主机的名称
…
3、请求实体内容
如果请求方式是GET提交,请求实体中没有数据
只有当请求方式为POST提交,并且请求中携带了数据, 请求实体才会有内容
只有当使用表单(form),并且在表单标签上明确的指定method=“POST”时,才是POST提交,其他的请求都是GET提交
1、状态行(包含协议及版本、状态码、描述短语)
HTTP/1.1 200 OK |
---|
HTTP/1.1:服务器做出响应时遵循的协议及版本 |
200:状态码(一个三位的数字), 表示服务器处理请求的结果如何,200表示服务器成功的处理请求 |
200: 服务器成功的处理了请求 |
304:通知浏览器使用缓存信息 |
404: 表示客户端请求的资源不存在! |
500: 表示服务器端发生了错误! |
2、若干响应头
http协议中响应头也非常多,下面列出部分常见的响应头及其功能:
Content-Length: 80
– 服务器发送的数据的大小,单位是字节。
Content-Type: text/html; charset=UTF-8
– 服务器发送的数据是什么格式的,如果是字符格式的数据,则还可以通知服务器发送的数据使用的是什么编码,浏览器会根据这个头指定的编码决定使用哪个编码来打开收到的数据
Text/heml—表示服务器响应的是一个html格式的网页
Image/*–表示服务器响应的是一个图片
Set-Cookie:和cookie技术相关的一个头
Refresh: 3;url=http://www.tedu.cn
– 定时刷新相关的头,通知浏览器,过几秒后自动刷新访问哪个地址
3、响应实体内容
响应实体中的内容就是浏览器所请求文件的内容。
例如,浏览器请求服务器中的一个1.html文件,那么1.html文件的所有内容会通过响应实体发送给浏览器
1.html文件的内容
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<h1>Hello tedu</h1>
</body>
</html>