HTTP的一些名词了解

HTTP协议发展历史

HTTP 是超文本传输协议,它定义了客户端和服务器之间交换报文的格式和方式,默认使用 80 端口。它使用 TCP 作为传输层协议,保证了数据传输的可靠性。
HTTP/0.9
只支持GET方法,没有HEADER等描述数据的信息。
服务器发送完毕,就关闭TCP连接。
HTTP/1.0
增加了很多命令
增加了status code和header。
多字符集支持、多部分发送、权限、缓存等。
HTTP/1.1
持久连接
增加了pipeline
增加了host和其它一些命令
HTTP2
所有数据以二进制传输
同一个链接里面发生多个请求不再需要按照顺序来
头信息压缩以及推送等提高效率的功能

TCP/IP协议族

通常使用的网络是在TCP/IP协议族的基础上运作的,而 HTTP 属于它内部的一个子集。
协议:不同的硬件、操作系统之间通信所需要的规则。
TCP/IP:把与互联网相关联的协议集合起来。

经典的五层模型

应用层(HTTP、FTP)、传输层(TCP、UDP)、网络层(IP)、数据链路层、物理层

1.应用层为应用软件提供了很多服务。
构建于TCP协议之上。屏蔽网络传输相关细节。
2.传输层向用户提供可靠的端到端服务。
传输层向高层屏蔽了下层数据通信的细节。

低三层
3.物理层主要作用是定义物理设备如何传输数据。电脑硬件、网卡端口、网线、光缆等等。
4.数据链路层在通信的实体间建立数据链路层连接。
5.网络层为数据在结点之间传输创建逻辑链路。

与 HTTP 关系密切的协议 : IP、TCP 和 DNS

  1. 负责传输的 IP 协议
    IP位于网络层,是一种协议的名称,与IP地址不同。
    IP 协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是 IP 地址和 MAC地址。
    IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定地址。
    IP 地址可以和 MAC 地址进行配对。IP 地址可变换,但 MAC地址基本上不会更改。

  2. 确保可靠性的 TCP 协议
    按层次分,TCP 位于传输层,提供可靠的字节流服务。
    字节流服务是指为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。
    TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。

  3. 负责域名解析的 DNS 服务
    DNS服务是和 HTTP 协议一样位于应用层的协议。
    用户通常使用主机名或域名来访问对方的计算机,而不像计算机那样直接通过 IP地址访问。
    DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。即提供域名到 IP 地址之间的解析服务。

TCP三次握手

用 TCP 协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。
握手过程中使用了 TCP 的标志 —— SYN(synchronize) 和ACK(acknowledgement)。
三次握手过程:
发送端首先发送一个带 SYN 标志的数据包给对方。
接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。
最后,发送端再回传一个带 ACK 标志的数据包,代表“握手”结束。

三次握手、持久连接化、管线化、四次挥手
Cookie技术:
HTTP 协议自身不对请求和响应之间的通信状态进行保存。
Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态

URI、URL和URN

URI:统一资源标识符
URI就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源
包括URL和URN
URL:统一资源定位符
描述一台特定服务器上某些资源的特定位置
几乎所有的URI都是URL
URN:统一资源名
通过URN可以用同一个名字通过多种网络访问协议来访问资源
还处于试验阶段,没有成熟的方案

方法、状态码

一些常见的HTTP方法:
GET: 向服务器访问资源
PUT: 将来自客户端的数据存储到一个命名的服务器资源中去,例如客户端吧文件传给服务器
DBLETE: 从服务器中删除命名资源
POST : 将客户端数据发送到一个服务器网关应用程序,例如客户端把某条信息告诉服务器
HEAD: 仅发送命名资源响应中的HTTP首部
状态码:

状态码类别原因短语
1XXInformational(信息性状态码)接收的请求正在处理
2XXSuccess(成功状态码)请求正常处理完毕
3XXRedirection(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求
5XXServer Error(服务器错误状态码)服务器处理请求出错
一些常见的状态码
200 OK文档正确返回
204 No Content请求处理成功,但没有资源返回
206 Partial Content对资源某一部分的请求
302 Redirect到其他地方去获取资源
301 Moved Permanently永久性重定向,请求的资源被分配了新的 URI
302 Found临时性重定向
303 See Other应使用 GET 方法定向获取请求的资源
403 Forbidden不允许访问
404 Not Found服务器上无法找到这个资源
503 Service Unavailable服务器暂时处于超负载或正在进行停机维护

HTTP报文

HTTP报文是由一行一行的简单字符串组成的.HTTP报文都是纯文本,不是二进制代码,可以很方便地对其进行读写。
HTTP报文包含报文首部、报文主体。请求报文和响应报文的首部内容一般由请求行、状态行、首部字段、其他信息组成。

请求报文:从Web客户端发往Web服务器的HTTP报文。
响应报文:从服务器发往客户端的报文。

与HTTP协作的Web服务器

域名、IP地址:
用单台虚拟主机可以实现多个域名,域名通过 DNS 服务映射到 IP 地址之后访问目标网站。
也就是说,当请求发送到服务器时,已经是以 IP 地址形式访问。
通信数据转发程序 :代理、网关、隧 道
代理
代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。
网关
网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请 求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客 户端可能都不会察觉,自己的通信目标是一个网关。
隧道
隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序。

参考资料:《图解HTTP》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值