1、使用HTTP协议通信
当我们在浏览器的地址栏输入地址(URL)的时候,然后浏览器呈现一个页面给我们或者一个404.
我们输入的地址中包含了我们想要访问的信息的信息,比如我们想要查看一张图片,这个地址就将包括图片在那个服务器,图片在这个服务器的什么地方。然后服务器收到这个请求,就返回给我们这个图片。这一来一回的通信使用的是HTTP协议(超文本传输协议)
2、TCP/IP
TCP/IP是一个协议族,通常使用的网络实在此基础上运作的,HTTP只是其中的一个子集。
TCP/IP分为:应用层、传输层、网络层和数据链路层。
应用层:决定了向用户提供应用服务时的通信服务,比如FTP(文件传输协议)和DNS(域名系统),HTTP协议就是在该层。
传输层:传输层对上层应用层,提供处于网络链中的两台计算机之间的数据传输,该层有两个性质不同的协议,TCP(传输控制协议)和UDP(用户数据报协议)
网络层:用来处理在网络上流动的数据包,与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
链路层:处理连接网络的硬件部分,包括控制操作系统、硬件的设备驱动、网卡、光纤。
3、三次握手
为了准确将数据送达目标处,TCP协议采用三次握手策略。用TCP协议把数据包的过程是这样:发送端首先发送一个带SYN标志的数据包给对方,接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息,最后发送端再回传一个带有ACK标志的数据包,代表握手结束
图解HTTP的插图
若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。
4、DNS
DNS服务负责域名到IP地址之间的解析服务,计算机通过一组纯数字的IP地址进行通信,域名是字符串,比如www.hak.jp
因为字符串符合人类的记忆习惯,而计算机擅长处理数字,所以需要DNS进行解析。
图解HTTP的插图
5、URI和URL
URL(统一资源定位符)是使用浏览器是需用输入的网页地址。
URI(统一资源标识符)就是有某个协议表示的资源定位标识符
URI用字符串标识某一个互联网资源,而URL表示资源的地点。可见URL是URI的子集。
GET /index.htm HTTP/1.1 Host:haket.jp
这是一个客户端发出的请求报文中的内容。
GET表示请求访问服务器的类型,称为方法(method)
随后的字符串 /index.htm指明访问的资源对象,也叫请求URI(request-URI)
最后的HTTP/1.1,既是HTTP的版本号
综合来看就是,请求访问某台HTTP服务器上的/index.htm页面资源
图解HTTP的插图
请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的
HTTP/1.1 200 OK Date: Tue, 10 Jul 2012 06:50:11 GMT Content-Length: 362 Content-Type: text/html <html> ......
图解HTTP的插图
8、HTTP方法
请求方法(所有方法全为大写)有多种,各个方法的解释如下:
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
9、持久连接和管线化
持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连续状态。
持久连接好处是减少了TCP连接的重复建立和断开造成的额外开销,减轻了服务器端的负载量。
管线化能够做到同时并行发送多个请求,而不需要一个接一个地等待响应。