Http(一)
2020-12-23 本文已影响0人
StevenHD
一、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
空行
表示响应头
结束了,以下是文件内容
部分