一、什么是http协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议...
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP协议:规定了浏览器客户端和服务器之间通信的方式
规定了浏览器该如何给服务器发送请求信息
也规定了服务器该如何给浏览器做响应信息
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。
二、三个基本原则
基于请求响应模型
一次请求对应一次响应
请求只能由客户端发出,服务器端只能被动的等待请求,做出回应
三、HTTP协议的详解
1.HTTP请求
(1)请求行 -- 第一行
GET/news/1.html HTTP/1.1
GET:表示提交方式,HTTP协议中一共有7中提交方式,
一般只用GET和POST
news/1.html :指定请求资源的路径
HTTP/1.1:协议和版本
(2)若干请求头
XXX:XXX
host:localhost --- 告诉服务器访问的是那一台虚拟主机
cookie:和cookie技术相关的头
Referer: 和防盗链相关的头--防止盗取链接,记录当前请求来自哪一个页面的超链接
(空白行)
(3)请求实体内容--
如果请求方式为POST提交并且请求中携带了数据,此时请求实体才会有内容, 相对安全
如果请求方式为GET提交,请求实体内容是空的!他的内容在地址栏中显示, 不安全
GET提交和POST提交的区别
(1)GET提交是通过地址栏url后面拼接参数将数据提交给服务器,相对不安全!
(2)通过地址栏提交参数给服务器,数据量不能太大(不超过1KB或者4KB)
(3)POST提交是通过请求实体内容将数据提交给服务器,不会显示在地址栏,相对安全
(4)POST提交的数据量理论上没有限制。
2.HTTP响应
(1)状态行
HTTP/1.1 200 OK
HTTP/1.1: 协议和版本
200:三位的整数,表示服务器对请求处理的结果
200:表示请求处理成功
302: 和重定向相关的头
404:客户端请求的资源不存在
500:服务器端在处理请求的过程出现了错误
ok:描述短语
(2)若干响应头
Content-Type:text/html;image/png--响应数据类型
Content-Length:80 ---- 响应数据的长度
Set-Cookie:
Refresh: 和定时刷新相关的头,比如,注册成功提示3秒之后跳转到首页就是一个定时刷新操作!
(空白行)
(3)响应实体内容
就是所请求资源文件的内容
HTTP状态码
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
HTTP状态码共分为5种类型: