HTTP协议
1.什么是HTTP协议
规定了浏览器客户端和服务器之间的通信方式
规定了浏览器如何给服务器发送请求信息
也规定了服务器该如何给浏览器做响应信息
2.三个基本原则
基于请求响应模型
一次请求对应一次响应
请求只能从客户端发出,服务器端只能被动等待请求,做出回应
3.HTTP协议详解
GET / HTTP/1.1
Host: www.news.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"215-1534236802489"
Last-Modified: Tue, 14 Aug 2018 08:53:22 GMT
Content-Type: text/html
Content-Length: 215
Date: Wed, 15 Aug 2018 03:11:05 GMT
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>涓婚〉</title>
</head>
<body>
<h1>news:澶ф柊闂绘窐瀹濈儹鍗栧紑濮嬩簡锛?/h1>
<p>涔颁拱涔帮紒锛侊紒</p>
<img src="r.jpg"/>
</body>
</html>
1.HTTP请求
(1)请求行
(2)若干请求头
(空白行)
(3)请求实体内容
2.HTTP响应
(1)状态行
(2)若干响应头
(空白行)
(3)响应实体内容
请求行
GET /news/1.html HTTP/1.1
GET表示提交方式,HTTP协议中一般有7种提交方式,只用GET和POST
/news/1.html :指定请求资源的路径
HTTP/1.1 协议和版本
若干请求头
host:告诉服务器访问的是哪一台虚拟主机
cookie
referer:记录当前请求来自哪一个链接

请求实体内容
如果请求方式为POST提交并且请求中带了数据,此时请求实体才有内容
如果请求方式为GET提交,请求实体的内容是空的
请求实体内容
*** GET提交和POST提交的区别 ***
主要体现在请求参数传输过程的不相同
(1)GET提交是通过地址栏url后面拼接参数将数据提交给服务器, 相对不安全!
(2)GET提交通过地址栏提交参数给服务器, 数据量不能太大(不超过1KB或者4KB)
(3)POST提交是通过请求实体内容将数据提交给服务器, 不会显示在地址栏, 相对更安全
(4)POST提交的数据量理论上没有限制.
状态行
HTTP/1.1 200 OK
HTTP/1.1:协议和版本
200:三位整数,表示服务器对请求处理的结果
200:表示处理成功
302:和重定向相关的头
304:缓存
404:客户端请求的资源不存在
500:服务器端在处理请求的过程中出现了错误
OK:描述短语
若干响应头
Content-Type:text/html; image/png 服务器响应的数据类型
Content-Length:80 响应的数据长度(字节)
Set-Cookie
Refresh:和定时刷新相关的头,比如注册成功提示3秒之后跳转到首页就是一个定时刷新操作
响应实体内容
就是所请求资源文件的内容