1.初始HTTP
HTTP协议是超文本传输协议(Hypertext Transfer Protocol)的缩写,是一种用于传输超媒体文档(例如 HTML)的应用层协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的 。
HTTP 协议是一个简单的请求-响应协议,它通常运行在 TCP 之上。 它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。 请求和响应消息的头以 ASCII 形式给出;而消息内容则具有一个类似 MIME 的格式 。
2.HTTP协议发展
3.HTTP协议报文
HTTP 协议报文一般包含请求报文和响应报文两部分。其中,请求报文由请求行、请求头和请求体组成,而响应报文则由状态行、响应头和响应体组成。
请求报文格式如下:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
其中,请求行包括请求方法(如 GET、POST 等)、请求的 URL 和 HTTP 版本号。请求头则是一些可选的头部字段信息,如 Host、User-Agent、Accept、Accept-Encoding 等。请求体则是具体的请求数据。
响应报文格式如下:
复制代码
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2019 12:34:56 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 12345
Last-Modified: Wed, 22 Jul 2019 08:12:34 GMT
Server: Apache/2.4.48 (Ubuntu) OpenSSL/1.1.0g PHP/7.2.1-7+ubuntu16.04.1+deb.sury.org+1
ETag: "abcdef"
X-Powered-By: PHP/7.2.1-7+ubuntu16.04.1+deb.sury.org+1
Expires: Mon, 27 Jul 2019 12:34:56 GMT
Cache-Control: private, max-age=0, must-revalidate, proxy-revalidate
Set-Cookie: cookie_name=cookie_value; expires=Thu, 22 Jul 2023 12:34:56 GMT; path=/; domain=.example.com; HttpOnly
其中,状态行包括 HTTP 版本号、状态码和状态描述。响应头则是服务器返回的头部字段信息,如 Content-Type、Content-Length、Last-Modified、Server、ETag、X-Powered-By、Expires、Cache-Control、Set-Cookie 等。响应体则是服务器返回的具体响应数据。
(1)常见值MEthod
(2)状态码
(3)RESTful API
(4)常见请求头
(5)常用响应头
(6)缓存流程
(7)认识cookie
4HTTPS
HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护 。HTTPS 协议是 HTTP 的安全版,可以理解为 HTTP+SSL/TLS,即在 HTTP 下加入 SSL/TLS,以实现对数据的加密传输和身份验证。