HTTP协议

HTTP协议是一种 超文本传输协议(Hypertext Transfer Protocol)

超文本传输协议可以进行文字分割:超文本(Hypertext)、传输(Transfer)、协议(Protocol)

按照范围的大小 协议 > 传输 > 超文本

下面来进行一个一个的名词解释

超文本

除了文本外还要进行传输图片、音频、视频,甚至点击文字或图片能够进行超链接的跳转,那么文本的语义就被扩大了,这种语义扩大后的文本就被称为超文本(Hypertext)

传输

两台计算机之间会形成互联关系进行通信,我们存储的超文本会被解析成为二进制数据包,由传输载体(例如同轴电缆,电话线,光缆)负责把二进制数据包由计算机终端传输到另一个终端的过程

通常我们把传输数据包的一方称为请求方,把接到二进制数据包的一方称为应答方。请求方和应答方可以进行互换,请求方也可以作为应答方接受数据,应答方也可以作为请求方请求数据,A 和 B 是两个不同的端系统,它们之间可以作为信息交换的载体存在,刚开始的时候是 A 作为请求方请求与 B 交换信息,B 作为响应的一方提供信息;随着时间的推移,B 也可以作为请求方请求 A 交换信息,那么 A 也可以作为响应方响应 B 请求的信息。

网络协议

网络协议就是网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议。

HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范

客户端和服务端

客服端请求获取资源

服务端为客户端服务响应客户端的回应

请求和响应

客户端发送请求报文服务端响应报文

获取

<方法><请求URL><版本> 起始行<版本><状态码><原因短语>
<请求首部> 首部<响应首部>

主体<>

首部

客户端content-type服务端

网络模型

网络是一个复杂的系统,不仅包括大量的应用程序、端系统、通信链路、分组交换机等,还有各种各样的协议组成。

为了给网络协议的设计提供一个结构,网络设计者以分层(layer)的方式组织协议,每个协议属于层次模型之一。每一层都是向它的上一层提供服务(service),即所谓的服务模型(service model)。每个分层中所有的协议称为 协议栈(protocol stack)。因特网的协议栈由五个部分组成:物理层、链路层、网络层、运输层和应用层。我们采用自上而下的方法研究其原理,也就是应用层 -> 物理层的方式

应用层

应用层是网络应用程序和网络协议存放的分层,因特网的应用层包括许多协议,例如我们学 web 离不开的 HTTP,电子邮件传送协议 SMTP、端系统文件上传协议 FTP、还有为我们进行域名解析的 DNS 协议。应用层协议分布在多个端系统上,一个端系统应用程序与另外一个端系统应用程序交换信息分组,我们把位于应用层的信息分组称为 报文(message)

运输层

因特网的运输层在应用程序断点之间传送应用程序报文,在这一层主要有两种传输协议 TCP和 UDP,利用这两者中的任何一个都能够传输报文,不过这两种协议有巨大的不同。

TCP 向它的应用程序提供了面向连接的服务,它能够控制并确认报文是否到达,并提供了拥塞机制来控制网络传输,因此当网络拥塞时,会抑制其传输速率。

UDP 协议向它的应用程序提供了无连接服务。它不具备可靠性的特征,没有流量控制,也没有拥塞控制。我们把运输层的分组称为 报文段(segment)

网络层

因特网的网络层负责将称为 数据报(datagram) 的网络分层从一台主机移动到另一台主机。网络层一个非常重要的协议是 IP 协议,所有具有网络层的因特网组件都必须运行 IP 协议,IP 协议是一种网际协议,除了 IP 协议外,网络层还包括一些其他网际协议和路由选择协议,一般把网络层就称为 IP 层,由此可知 IP 协议的重要性。

链路层

现在我们有应用程序通信的协议,有了给应用程序提供运输的协议,还有了用于约定发送位置的 IP 协议,那么如何才能真正的发送数据呢?为了将分组从一个节点(主机或路由器)运输到另一个节点,网络层必须依靠链路层提供服务。链路层的例子包括以太网、WiFi 和电缆接入的 DOCSIS 协议,因为数据从源目的地传送通常需要经过几条链路,一个数据包可能被沿途不同的链路层协议处理,我们把链路层的分组称为 帧(frame)

物理层

虽然链路层的作用是将帧从一个端系统运输到另一个端系统,而物理层的作用是将帧中的一个个 比特 从一个节点运输到另一个节点,物理层的协议仍然使用链路层协议,这些协议与实际的物理传输介质有关。

http://www.php.cn/article.html

  • 1)http://:这个是协议,也就是HTTP超文本传输协议,也就是网页在网上传输的协议。
  • 2)www:这个是服务器名,是指在因特网上以超文本为基础形成的信息网。
  • 3)http://php.cn:这个是域名,是用来定位网站的独一无二的名字。
  • 4)http://www.php.cn:这个是网站名,由服务器名+域名组成。
  • 5)/:这个是根目录,也就是说,通过网站名找到服务器,然后在服务器存放网页的根目录
  • 6:)article.html:这个是根目录下的网页
  • 7)http://www.php.cn/article.html:这个叫做URL,统一资源定位符,全球性地址,用于定位网上的资源。
  • HTTP 的 URL 是由 http:// 起始与默认使用端口 80,而 HTTPS 的 URL 则是由 https:// 起始与默认使用端口443

http_网络层

状态码

2XX成功(200被正常执行)

3XX重定向

4XX客户端错误

5XX服务端错误

tcp三次握手机制

非持久和持久连接

非持久节省资源发送完一条处理后服务端自动关闭

随着互联网的发展HTTP1.1中改为持久连接能为客户端连续处理多条请求(但有时间限制)

最后发送Connection:close进行关闭

无状态和状态管理

服务器不会记录每条访问记录否则会崩溃=无状态

但目前很多网页是有用户登陆功能的

如果无状态就需要下次重新登录

因此在首部字段加上Cookie信息

就能实现状态登录