HTTP协议:将超文本标记语言(HTML)文档从Web服务器传送到浏览器。
HTTP协议是无状态的。
目前我们使用的HTTP协议是:HTTP/1.1版本。
工作原理:浏览器发送http请求,服务器接收到http请求,返回http相应,浏览器接收到http详情,解析超文本。
扩展:TCP/IP协议
HTTP协议报文的结构:
HTTP请求报文:
- 起始行(method方法、URI、协议版本)
- 首部
- 主体
HTTP响应报文:
- 响应行(状态码、状态码消息、协议版本)
- 首部
- 主体
HTTP协议请求方法:
GET、POST、HEAD、PUT、DELETE
HEAD:类似于GET请求,只不过返回的相应中没有具体的内容,用于获取报头;
PUT:从客户端向服务器传送的数据取代指定文档的内容;
DELETE:请求服务器删除指定的页面;
URL的组成:
协议+域名(IP地址)+端口(默认80)+路径+参数+锚
状态码:
1XX、2XX、3XX、4XX、5XX
301/302重定向,请求的URL已移走。response中应该包含一个Location URL,说明资源所处的位置。
304:未修改,客户的缓存资源是最新的,需要客户端使用缓存。
401:禁止访问。
501:服务器遇到一个错误,使其无法对请求提供服务。
头部header:
Cache(缓存)、Cookies、Accept、Accept-Encoding、Accept-Language、User-Agent、Refer、Connection、HOST
缓存:浏览器的缓存、服务器端的缓存、代理服务器的缓存、ASP.NET的缓存、对象缓存、数据库缓存等等
HTTP中具有缓存的是浏览器缓存和代理服务器缓存。
既然HTTP是无状态的、那就让服务器和浏览器共同维护一个状态,这就是会话机制。
会话机制:
浏览器发起第一次请求 --> 服务器创建会话,并返回会话id(JESSIONID)->浏览器接收响应并设置cookie->二次会话(带上会话id)
请求的header带>> cookie:值;
响应的header带>> set-cookite:值;
Cookie的属性
Expires的值是一个时间,代表过期时间,如果不指定Expires time,表示关闭浏览器/页面的时候,此Cookie就应该被浏览器删除了。
网友评论