HTTP协议预习笔记
HTTP/HTTPS简介
HTTP协议一般指HTTP(超文本传输协议)。
其中,超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议,是应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
HTTP 是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。
HTTP 是一个基于 TCP/IP 通信协议来传递数据的(HTML 文件、图片文件、查询结果等)。
注释:TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
HTTP 的 URL 是由 http:// 起始与默认使用端口 80,而 HTTPS 的 URL 则是由 https:// 起始与默认使用端口443。
HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包.
HTTP 工作原理
HTTP 协议工作于客户端-服务端架构上。
浏览器作为 HTTP 客户端通过 URL(网址) 向 HTTP 服务端即 WEB 服务器发送所有请求。Web 服务器有:Apache 服务器,IIS 服务器等。Web 服务器根据接收到的请求后,向客户端发送响应信息。
HTTP的三个特点
- 无连接的 一请一应,节省时间
- 媒体独立的
- 无状态的
HTTPS作用
HTTPS的主要作用是在不安全的网络上创建一个安全信道,并可以使用适当加密包和服务器证书可被验证且可被信任。
HTTP链接会显示安全和不安全。
HTTP消息结构
HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应的协议。
客户端请求消息
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:
请求行(request line)
请求头部(header)
空行
请求数据
请求方法 URL 协议版本 回车符 换行符 //请求行
头部字段名 值 回车符 换行符 //请求头部
回车符 换行符
请求数据
服务器响应消息
HTTP响应由四个部分组成:
状态行
消息报头
空行
响应正文
HTTP请求方法
HTTP定义了三种请求方法:GET,POST,HEAD方法。
另外六种请求方式:OPTIONS,PUT,PATCH,DELETE,TRACE,CONNECT。
HTTP响应头信息
Allow 请求方法
Content-Encoding 文档的编码方法
Content-Length 表示内容长度
Content-Type 表示后面的文档属于什么MIME类型
Date 当前的GMT时间
Expires 应该什么时候认为文档过期,不再缓存
Last-Modified 文档的最后改动时间
Location 表示客户应当到哪里去提取文档
Refresh 表示浏览器应该在多少时间之后刷新文档,以秒计
Server 服务器名字
Set-Cookie 设置和页面关联的Cookie
WWW-Authenticate 客户应该在Authorization头中提供什么类型的授权信息
HTTP状态码
响应浏览器的请求
常见HTTP状态码:
- 200 请求成功
- 301 永久转移到其他网址
- 404 not found
- 500 内部服务器错误
HTTP content-type
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something
MIME类型
type/subtype #通用结构
HTTP 协议
主要由三大部分组成:
-
起始行:描述请求或响应的基本信息;
-
头部字段:使用 key-value 形式更详细地说明报文;
-
消息正文:实际传输的数据,它不一定是纯文本,可以是图片、视频等二进制数据。
请求行报文模式
-
请求方法:如GET/HEAD/PUT/POST,表示对资源的操作;
//GET:获取服务器中的资源
//POST:资源的修改
-
请求目标:通常是一个URI,标记了请求方法要操作的资源;
-
版本号:表示报文使用地HTTP协议版本。
响应行报文格式
- 版本号:表示报文使用的HTTP协议版本;
- 状态码:一个三位数,用代码的形式表示处理的结果;
- 原因