1.了解WEB以及网络基础
1.1使用HTTP协议访问WEB
web页面显示:根据web浏览器地址栏中输入指定的URL,web浏览器从web服务端获取文件资源(resource)等信息,从而显示出web页面
1.2网络基础TCP/IP
通常使用的网络(包括 互联网)是在tcp/ip协议族的基础上运作的,而http属于它内部的一个子集
1.2.1TCP/IP协议族
计算机与网络设备相互通信,双方就需要使用同样的方法,比如,你和别人约定在某个地方见面,见面前,约定好在什么地方见面,见面时双方的特征,以及见面以后做什么等规则都要事先确定,不同硬件、操作系统之间的通信,都需要一种规则,这种规则称为协议(protocol)
协议包含各种内容:从电缆的规格到IP地址的选定方法,寻找异地用户的方法,双方建立通讯的顺序,以及WEB页面现实的需要处理的步骤等等,
TCP/IP一种解释是,互联网所关联的协议集合。另一种是特指TCP/IP这两种协议。还有一种是IP通信过程中,使用到的协议族的统称
1.2.2TCP/TP分层管理
TCP/IP协议族按层次分成以下4层:应用层,传输层,网络层,数据链路层
分层作用类似模块化,每一层只有处理当前层的问题即可,让每一层更专注处理每一层该处理的问题
1.2.2.1应用层
应用层决定了向用户提供应用服务时的通信活动
应用服务比如:
- FTP(File Transfer Protocol,文件传输协议)
- DNS(Domain Name System,域名系统)等
HTTP协议处于应用层
1.2.2.2传输层
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
传输层有两个性质不同的协议:
- TCP(Transmission Control Protocol,传输控制协议)
- UDP(User Data Protocol,用户数据报协议)
1.2.2.3网络层(又名网络互连层)
网络层用于处理在网络上流动的数据包,数据包是网络上传输最小的数据单位,该层还规定了发送给对方数据包的传输路线。
与对方计算之间或则通过对台计算机或则网络设备进行传输时,网络层就是在众多路线中选择一条路线
1.2.2.4链路层
用来处理链接网络的硬件部分,包括控制操作系统,硬件的设备驱动,NIC(Network interface Card,网络适配器,即网卡),光纤,等一切物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均属于链路层的作用范围
1.2.3 TCP/IP通信传输流
- 利用TCP/IP协议族进行网络通信时,发送端从客户端从上往下走,接收端服务端从下往上走
HTTP举例说明:
- 发送端客户端在应用层(http协议)发送一个web页面的http请求
- 到了传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层
- 到了网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层
- 到了接收端的服务器在链路层接收到数据,按顺序往上层发送,当传输到应用层,才能算真正的接收到由客户端发送过来的HTTP请求
发送端在层与层之间传输数据时候,每经过一层时候必定会被打上一个该层的所属的首部信息,反之接收端在层与层传输数据时候,没经过一层会把对应的首部消去,这种数据信息包装起来的做法称为封装
1.3 与HTTP关系密切的协议:IP、TCP、DNS
1.3.1 负责传输的IP协议
IP(internet Protocol)网络协议处于网络层,作用是把各种数据包发送给对方,其中最重要的条件IP地址和MAC(Media Access Control Adress)地址,
- IP :节点分配的地址,可变,可以和mac进行配比
- MAC:网卡所属的固定地址,基本上不会更改,可以和ip进行配比
1.3.1.1 使用ARP协议进行MAC地址通信
ARP(Adress Resolution protocol)协议,是一种解析地址的协议,根据通信方的IP地址可以反查出对应的MAC地址
- IP之间通信会依赖于MAC地址,正常情况非统一局域网(lan)下的通信是通过多台计算机和网络设备的中转才可以连接到对方,在中转的时候,会利用下一站中转设备的MAC地址搜索下一个中转目标。这个过程使用到的协议就是ARP
1.3.2 确保可靠性的TCP协议
处于传输层的TCP,可以确定数据最终是否送达,发送过程把大块数据分割成报文为单位的数据包进行传输。
1.3.2.1 可靠的三次握手
TCP协议采用三次握手策略来确定数据是否传输成功,TCP协议处理好数据发送后,会向对方确定是否发送成功,握手过程使用了TCP标志SYN(synchronize)和ACK(acknowledgement)
握手过程如有中断,会进行相同的顺序再次发送
1.4 负责域名解析的DNS服务
DNS(Domain name System)服务和HTTP一样处于应用层,它提供了域名到IP之间的解析服务
计算机既可以被赋予IP地址也可以被赋予主机名和域名例如www.hackr.jp
正常情况下访问另一台计算机是通过域名或则主机名,但是计算机擅长处理数字,所以就需要DNS来解析
DNS可以通过域名查找IP,也可以通过IP逆向查找对方域名
1.5 各种协议之间的关系
1.5 URI和URL
URI(Uniform Resource Identifier) 统一资源标识符,URL(uniform Resource locator)统一资源定位符
URI:表示由某个协议方案表示的定位符,如(https ftp) 等,表示指定的URI必须涵盖全部必要的信息
URL:例如www.baidu.com,可见URL是URI的子集
2.简单的HTTP协议
2.1 HTTP用于客户端和服务端之间的通信
客户端:请求访问资源
服务端:提供响应资源
仅有一条路线通信时,应用http协议的时候必然有一端是客户端,另一端是服务端
2.2通过请求和响应的交换达到通信
通信是建立于客户端发出了请求 ,服务器在没有收到请求前是不是发出通信的
客户端: 发出请求下面是请求报文
- GET: 表示请求方法(method)
- /idnex.htm: 表示请求资源的访问对象也叫做请求URI(request-URI)
- HTTP/1.1: http版本号提示客户端使用的HTTP协议功能
综合意思就是通过HTTP协议,使用GET方法访问某台服务器上的 /idnex.htm文件
- 请求报文: 是由请求方法,URI,协议,可选的请求首部字段,和内容实体构成的
接到收请求内容实体的服务器,会将请求内容的处理结果以响应的形式返回