这里梳理一下术语:在web程序中,客户端,应用端,浏览器端等等可以统一被理解为用户操作端,web程序就是操作端与服务端间的数据交互。
HTTP是一个应用层协议,也被称为超文本传输协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,一次http请求操作,工作过程可以分为:
1)首先客户端与服务器需要建立连接。只要单击某个超级链接(前端中例如a标签),HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户端与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。
HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。
请求报文格式如下:
请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
应答报文格式如下:
状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
这里提到一下,因为http是无状态协议(即响应完毕后断开连接),所以客户机发送给服务器的相同请求,服务器无法识别,所以这造成了请求繁复的问题,因为用户操作的动态网页,可能每次操作导致页面数据变化不是很大,而每次重复请求大体积的数据,给整个程序造成压力,所以这里介绍一下缓解服务器压力的前端技术,ajax异步加载,局部刷新页面更改数据,session,cookie存储信息到客户机浏览器内部,本地脚本操作缓存到的数据信息,websocket长连接应用于聊天信息频繁更换页面数据。