web网络知识1

当你在浏览器里输入一个url发生了什么

简单归纳:

    1.浏览器通过DNS域名解析到服务IP(ping www.baidu.com)

    2.客户端(浏览器)通过TCP协议建立到服务器的TCP连接  (三次握手四次挥手)

    3.客户端(浏览器)向web服务器端(HTTP服务器)发送HTTP协议包,请求服务器里的资源文档 (telnet 模拟)

    4.服务器想客户端发送HTTP协议应答包

    5.客户端和服务器断开,客户端开始解释处理HTML文档

那么TCP协议以及HTTP协议又是什么呢, 首先我们先简单介绍一下TCP/IP协议

TCP/IP协议

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址

TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。
从协议分层模型方面来讲,TCP/IP由四个层次组成:应用层、传输层、网络层、数据链路层;

  1. 应用层是指所有用户所面向的应用程序的统称,TCP/IP协议族在这里层由许多协议来支持不同的应用,比如http、FTP、SMTP、DNS、telnet等等。而这里对于用户来说看到的是一个个的软件所构筑的图形化的界面,比如浏览器、远程登录界面等。
    1. 传输层的主要功能是提供应用程序间的通讯,TCP/IP协议在这次层的协议有TCP和UDP。该层对于用户来说是主机对主机层,负责对上层应用程序隐藏网络的复杂性。
  2. 网络层的主要功能是定义了IP格式,从而使得不同应用类型的数据在Internet上通常的传输。主要包括协议比如IP、ICMP、ARP、RARP、ARP等。网络层对用户来说标志性设备为路由器,负责路由选择以及提供单个到上层的网络结构。
  3. 数据链路层是最底层,主要功能是负责接收IP数据包并通过网络发送,或者从网络上接收物理帧,抽出IP数据包,交给IP层。该层对于用户来说标志性设备为交换机。

TCP/UDP(传输层协议)

应用层我们就不做太多介绍了, 现在我们看一看传输层协议作何规定

面向连接的TCP

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。

面向非连接的UDP协议

“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!

那么可靠的TCP协议怎么连接呢

三次握手(建立链接)

  1. 先Client端发送连接请求报文。

  2. Server段接受连接后回复ACK报文,并为这次连接分配资源。

  3. Client端接收到ACK报文后也向Server段发送ACK报文,并分配资源,这样TCP连接就建立了。

四次挥手(断开连接)

  1. Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说”我Client端没有数据要发给你了”,但是如果你还有数据没有发送完成,则不必急着关闭(Socket),可以继续发送数据。

  2. server发送ACK,”告诉Client端,你的请求我收到了,但是我还没准备好,请继续等我的消息”。

    wait:这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。

  3. 当Server端确定数据已发送完成,则向Client端发送FIN报文,”告诉Client端,好了,我这边数据发完了,准备好关闭连接了”。

  4. Client端收到FIN报文后,”就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,”就知道可以断开连接了”。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!


应用层协议: http https等

作为一个web人员http协议肯定是要了解的

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

上面的协议为了建立客户端与服务器端的连接,此协议为了让两者进行沟通, 下面我们就来了解一下http报文

http报文

http (请求报文,响应报文) 通过报文进行沟通
请求报文:

请求头 
请求行
请求主体

响应报文:
响应头
响应行
响应主体
越来越多的平台(微信公众平台,新浪微博,简书,百度打赏等)支持打赏功能,付费阅读时代越来越近,特此增加了打赏功能,支持微信打赏和支付宝打赏。坚持原创技术分享,您的支持将鼓励我继续创作!