初步了解 HTTP

250 阅读5分钟

1983年3月,HTTP诞生了。主要是为了让身处两地的学者共享知识。

1990年,成功研发世界上第一台web服务器和web浏览器。

1990年,大家对HTML 1.0草案进行讨论,因为存在多处模糊不清的部分,所以废弃连。

1993年1月,现代浏览器祖先研发了Mosaic,它以in-line(内联)等形式显示HTML。

1994年12月,网景通信公司发布了Netscape Navigator 1.0.

1995年微软发布了Internet Explorer1.0和2.0.

紧随其后是现在成为服务器标准之一的Apache。

1995年,微软和网景爆发了浏览器大战,他们都各自对HTML做了扩展,导致在些HTML时需要兼容。

2000年左右,网景公司衰落。

2004年,Mozilla基金会发布连Firefox,第二次浏览器大战随即爆发。

Internet Explorer浏览器从6升到7话费了5年时间。之后接连不断发布了8,9,10.另外,Chrome、Opera、Safari等浏览器纷纷抢占市场。

HTTP 1990年问世,那个时候没有成为正式的标准被建立。

1996年5月,HTTP 正式作为标准被公布。

1997年1月,公布了HTTP 1.1.

HTTP是TCP/IP协议族的一个子集。

让不同的设备,操作系统之间通信的规则,我们称为协议(protocol)

像这样把与互联网相关联的协议集合起来总称为TCP/IP。

TCP/IP分为应用层、网络层、传输层、链路层。

IP和IP地址不一样,IP是协议的名称,在网络层。

IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址配对。IP地址可变,MAC地址基本不会更改。

IP间通信依赖MAC地址,通信双方通常会经过多台计算机和网络设备中转才能连接到对方。在中转过程中,会利用下一站中转设备的MAC地址搜索下一个中专目标。ARP是一种用以解析地址的协议,根据通信方IP地址就可以反查出对应的MAC地址(物理地址)。

TCP字节流服务是指为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。TCP协议能够确认数据最终是否送达到对方。TCP在传输层。

TCP采用了三次握手来确保将数据准确送达。三次握手有两个标志,SYN(synchronize|同步)和ACK(acknowledgement|确认)。TCP除了三次握手,还有其他各种手段来保证通信的可靠。

DNS服务和HTTP一样位于应用层,它提供域名到IP地址之间的解析服务。可以通过域名查找IP地址,或者逆向从IP地址反查域名。

HTTP请求简单流程:

  • 通过DNS将域名解析成IP地址
  • 通过HTTP协议生成服务器请求报文
  • 通过TCP协议将HTTP请求报文按序号分割成报文段,将报文段传送给对方
  • IP协议搜索对方的地址,一边中转一边传输。
  • 服务器那边通过TCP协议将接收到的报文段按序号重组
  • HTTP解析请求内容
  • 成功完成请求
  • 服务器通过TCP/IP协议返回处理结果

URI:统一资源标识符 URL:统一资源定位符

URL就是使用web浏览器访问web页面需要输入的地址。

URI中Uniform指统一的格式,方便处理多种不同类型的资源,新增协议方法也更容易。Resource指资源,任何可以表示的东西。文件,图像,服务等能够区别于其他类型的,可以是单一的,也可以是集合体。Identifier为标识符。总的来说,URI就是由某个协议方案表示的资源的定位标识符。协议方法指访问资源所使用的协议类型名称。采用HTTP协议时,协议方案就是http。

标准的URI协议方案有30中左右。由IANA管理颁布。

URI用字符串表示某以互联网资源,URL表示资源的地点,可见URL是URI子集。

URI格式:user:pass@www.example.jp:80/dir/index.h…

  • http: 协议方案名
  • user:pass 登录信息(认证)
  • www.example.jp 服务器地址
  • 80 端口号
  • dir/index.html 带层次的文件路径
  • uri=1 查询字符串
  • ch1 片段标识符

登陆信息:指定用户名和密码作为从服务器获取资源是必要的登录信息,可选项。

服务器地址:地址可以是域名,IPv4或者IPv6

端口号:指定服务器连接的网络端口号,可选项,省略则自动使用默认端口号。

带层次的文件路径:指定服务器上的文件路径来定位特指的资源。

查询字符串:针对指定的资源,可以用查询字符串传入任意参数,可选项。

片段标识符:可标记出已获取资源中的子资源,可选项。

一些用来指定HTTP协议技术标准的文档,称为RFC(request for comments|征求修正意见书)通常应用程序会遵循RFC的标准。RFC是互联网的设计文档,如果没有遵循,可能导致无法通信。