HTTP超文本传输协议
浏览器(客户进程)与万维网服务器(服务器进程)之间的通信规范
一、报文
1. 请求报文(浏览器发送)
(1)请求报文格式
(2)请求常见方法
2. 响应报文(服务器发送)
(1)响应报文格式
(2)响应报文常见状态码
反映通信进行的情况
二、版本
HTTP/1.0 非持续TCP连接
HTTP/1.1 持续TCP连接
三、特点
HTTP是一种无状态的协议,并不会对数据进行记忆,只提供数据传输服务。
在动态网页中HTTP也只在每一次浏览器发出请求报文时进行回应,传回浏览器需要的网页资源在浏览器上进行显示。(包括超链接网页刷新和AJAX局部刷新)浏览器每一次发出的请求都是相互独立的,没有先后顺序。
而如果想让网站记忆用户先前的操作,就需要用到Session和Cookie技术。
Session会话技术,基于Web服务器的保持状态的方法。
Cookie是存储在用户本地终端上,与特定的Web文档关联在一起的小型文本文件,该文件保存了客户端访问该网站的一些历史数据。基于这个Cookie文件,再次访问该网站时,网站就可以调用存储在用户本地的网站历史数据进行一次性动态网页渲染,而不需要从头进行操作,弥补了HTTP访问网页文件时无状态传输数据的局限性。
Cookie记录用户信息的过程:
1.用户初次访问网站:
(1)主机浏览器进程发送HTTP请求报文
(2)服务器进程收到请求报文,生成唯一的Cookie识别码,并在服务器后端数据库中创建一个以该识别码为索引的项目,用于记录用户访问该网站的各种状态信息
(3)服务器进程发送响应报文,响应报文中包含首部字段为Set-Cookie的首部行,该字段取值就是Cookie识别码。
(4)浏览器进程收到响应报文后,在特定Cookie文件中添加一行,记录该服务器的域名以及Cookie识别码。
2.用户再次访问网站:
(1)浏览器发送请求报文,该请求报文中包含从本地Cookie文件提取出来的要访问的服务器域名下的Cookie识别码
(2)服务器进程收到请求报文,根据请求报文中的Cookie识别码调出相关的信息,返回给用户端形成个性化网页
(3)服务器进程发送响应报文,响应报文里面有该用户的网站历史状态信息
(4)浏览器收到响应报文,根据状态信息渲染网页