一、http介绍
-
无状态协议——不管请求多少次,都是一样的应答(不会记录上一次的行为or记录) - https——
- URL: Uniform Resrouce Locator
统一资源定位器 - URI: Uniform Resuorce Identfier
统一资源标识符 - MIME: Multipurpose Internet Mail Extensions
多用途互联网邮件扩展类型
二、http请求头
- http1.1可以使得——【连接可以复用】
减少了
TCP3次握手的开销
- 第一行是
请求行 - 请求行结束标志——
\r\n - 头域是第2行,第3行,第4行,第5行,第6行,第7行(Connection部分也是头域)..
- Cookie部分
- 空行
\r\n(表示请求头结束) -
一整个部分都是请求头
先是三次握手,然后客户端发送GET报文,服务器发送应答报文
2.1 请求方法
- GET,HEAD
HEAD类似于GET,只不过
HEAD只是探测是否有资源,GET是获取资源
-
请求行结束之后,是具体的头域信息
域名
-
Accept指定了接收html, png, mp3这些 -
Cookie在头域中有 -
长连接也不能改变HTTP这种无状态的性质
让我们来看一个
请求头——
![]()
发送的时候就是整个请求头发出去(不要忘记最末尾有一个换行)
三、服务器如何响应请求
- 状态行
- 消息报头
- 空行
- 响应报文
![]()
空行的意思是响应头已经结束了,下面的是响应正文
Content-Length包含122个字节,空行之前是响应头
3.1 状态码
-
1——继续 -
2——成功 -
3——重定向,304意味着Not Modified也就是未更改,服务器认为客户端请求的这个页面没有更改,服务器也不用更新这个页面了(请求的页面没有更新) -
4——客户端的请求出错 -
5——服务器处理请求出错
3.2 响应头域
-
Content-Length——表示内容长度 -
Content-Type——属于什么MIME格式(html, png, mp3)等等 -
Set-Cookie——设置和页面关联的【Cookie】
保存客户端的信息,eg. 登录
淘宝登录一次后,后面浏览,点击商品就不用再登录了,那么如何知道登录成功呢?
响应报文中的头域会Set-Cookie,服务器将Cookie发给客户端,客户端就记录我已经登录了,Cookie中有记录的凭证(保存在浏览器的缓存中)
浏览同一个网站的不同页面的时候,每次都要把cookie发给服务器,告诉服务器我已经登录了(通过【Cookie】告诉服务器)
-
E-Tag——标识每一个文件,校验一个文件 -
Cache-Control——缓存控制(服务器上的缓存控制)
响应报文的每一行后面都有一个
/r/n
- Keep-ALive中有个
timeout
![]()
空行表示响应头结束了,以下是文件内容部分







网友评论