当我们需要浏览某个站点时,在浏览器上输入URL,web就会呈现在我们面前,但是它是怎么实现的呢??
首先,我们简单的说说tcp/ip协议:
TCP/IP 协议族里重要的一点就是分层。TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。
应用层——它决定了向用户提供应用服务时通信的活动,包括的协议有FTP、DNS、http等
传输层——对上层应用层,提供处于网络连接中的两台计算机之间的数据传输,包括的协议有TCP(传输控制协议)、udp(用户数据报协议)。
网络层——来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方
链路层——用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。
客户端与服务端的数据传输,是一个从应用层到链路层的封装、再从链路层到应用层的解封的过程,这里就不在描述其具体过程。
下面简单描述浏览网页时各个协议的作用:
客户端————(告诉我www.xxx.com的IP地址)———→DNS
客户端←——(www.xxx.com对应的IP是192.X.X.X)——DNS
客户端——http协议生成针对服务端web请求的报文——tcp协议将http报文分段传输——IP协议搜索对方地址中转及传输——服务端ip层收到报文后——服务端tcp负责重组——服务端http负责对请求报文处理。
请求报文: 恢复报文:
GET /index.htm HTTP/1.1 http/1.1 200 OK
Host: hackr.jp DATE:Tue,......
初识状态码,通常浏览器访问web服务器时,服务器的response会夹带有状态码,状态码有三位数字组成,第一个数字定义了响应
的类别,且有五种可能的取值:
1XX:指示信息————表示请求已经接受,继续处理
2XX:成功——————表示请求已被成功接收、理解、接受 (200 成功)
3XX:重定向——————要完成请求必须进行更进一步的操作
4XX:客户端错误————请求有语法错误或者请求无法实现 (403存在 404不存在)
5XX:服务端错误————服务器未能实现合法的请求 (500可能存在)
值得注意的是,http协议并不是保存状态的协议。就是说HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理。HTTP/1.1 虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了 Cookie 技术。有了 Cookie 再用 HTTP 协议通信,就可以管理状态了。有关 Cookie 的详细内容稍后讲解。
每次http进行链接和断开,都会进行三次握手和四次挥手,而请求方法目前用得最多的有get、post,cookie是用于状态的管理,也可cookie请求。
关于http报文详解、安全的HTTP+ssl(https)传输,后续慢慢学习讲解。