• 网络基础1


    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的子集。

    URI 在于I(Identifier)是统一资源标示符,可以唯一标识一个资
    URL在于Locater,一般来说(URL)统一资源定位符,可以提供找到该资源的路径,比如,但URL又是URI,因为它可以标识一个资源,所以URL又是URI的子集。(知乎上对于他俩区别的解释的回答)
     
     
    6、URI格式
    可以看看这里,说得很清楚,
     
    7、简单的HTTP协议
     
    HTTP协议规定,请求从客户端发出,最后服务器端相应该请求并返回。
    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/1.1表示服务器对应的HTTP版本
      200 OK表示处理结果的状态码
      Date表示创建响应的日期时间,是首部字段内的一个属性
      之后的内容就是称为资源实体的主体

                      图解HTTP的插图

    响应报文基本上是由协议版本、状态码、解释状态码的原因短语、可选的响应首部字段以及实体主体构成
     

    8、HTTP方法

    请求方法(所有方法全为大写)有多种,各个方法的解释如下:
    GET     请求获取Request-URI所标识的资源
    POST    在Request-URI所标识的资源后附加新的数据
    HEAD    请求获取由Request-URI所标识的资源的响应消息报头
    PUT     请求服务器存储一个资源,并用Request-URI作为其标识
    DELETE  请求服务器删除Request-URI所标识的资源
    TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断
    CONNECT 保留将来使用
    OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

    9、持久连接和管线化

    持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连续状态。

    持久连接好处是减少了TCP连接的重复建立和断开造成的额外开销,减轻了服务器端的负载量。

    管线化能够做到同时并行发送多个请求,而不需要一个接一个地等待响应。

  • 相关阅读:
    A 【NOIP2012 day2】疫情控制
    Leetcode(886)-可能的二分法
    判断链表是否有环
    如何判断图的连通
    图的DFS与BFS
    struct 和 class的区别
    最小生成树-kruskal算法
    Leetcode(712)-账户合并
    全局最小割
    Leetcode(29)-两数相除
  • 原文地址:https://www.cnblogs.com/xxbbtt/p/7908561.html
Copyright © 2020-2023  润新知