Http(一)

一、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


空行表示响应头结束了,以下是文件内容部分

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容