HTTP协议(浅说)

            (上网就是把人家主机上的资源弄到你的主机上)

     1. HTTP:(Hype Text Transfer Protocol)超文本传输协议,,协议就是一套规则

     2. 超文本:纯文本就是纯粹的文字信息的文本,对应的超文本就是包含视频、音频、图片等多媒体信息的文本

     3. URL(UniformResource Location)统一资源定位符,用于识别万维网中的某个资源的地址

       (1)格式:协议//:主机端口/文件资源的路径             eg:http://www.baidu.com:80/index.html

      (2)http:协议,表示该资源以什么格式、流程、规则等进行传输,对应的还有 https(http的安全版)、ftp(文件传输协议)等

       (3)www.baidu.com:该主机的 IP 地址(唯一的),互联网上有很多主机,通过 IP 找到要和哪台主机进行通信。但一般 IP 地址格式都是:0~255.0~255.0~255.0~255,我们之所以可以通过  www.baidu.com 访问,是因为它通过 DNS 绑定了这个 IP 地址,DNS 可理解为一张表,记录着 IP 和域名的对应信息,在互联网中也是唯一的

      (4)80:该程序的端口,通过 IP 找到主机后,这个主机上可能运行着很多的程序,通过端口号就可以确定要和哪个程序通信,因为一般每个程序都会唯一占用多个端口号。端口号小于 1024 的一般都是默认被占用了的,比如 HTTP 默认占用 80 端口,因此我们设置端口号的时候一般设置大于 1024

      (5)/index.html:该文件资源的路径,类似于 Windows 的文件路径,通过这个路径就可以获得对应资源了

             如此,通过 URL 就可以定位每个资源了

     4.流程

     (1)浏览器分析 URL                    eg:http://www.baidu.com:80/index.html

     (2)浏览器向 DNS 请求解析:根据解析表,www.baidu.com 对应的IP 是 61.135.169.125(命令行用 ping 可以查看)

     (3)DNS 解析出的 IP 发回给浏览器,这样就得到要获取的资源在互联网中的准确地址了 http://61.135.169.125:80/index.html

     (4)根据 IP + 端口,浏览器与服务器建立 TCP 连接

     (5)浏览器向服务器发送 GET/index.html 请求(一般第一次都使用 GET 请求,一般网站的首页都是 index.html)

     (6)服务器响应请求,根据浏览器所在的 IP+端口,向浏览器发送 index.html 文件

     (7)释放 TCP 连接

     (8)浏览器里显示收到的资源

               流程图

     

    5. HTTP 报文格式

         既然 HTTP 是一套规则,那也肯定规定了它的格式,现在就来了解一下

       (1)请求报文 

                è¿éåå¾çæè¿°

               请求报文的格式一共三大段:请求行、请求头和数据部分,注意他们之间的空格和回车,这是固定且必须的

               [ 请求行 ]:请求方法是浏览器访问服务器的方式,比如最广泛的 GET,用于提交登录数据的 POST

                                  

                             URL 就是服务器的 URL,协议版本是 HTTP 的版本,常见的比如 HTTP/1.1

              [ 请求头 ]:表示该请求的各种相关参数信息,常见的如下表

             

             [ 数据部分 ]:不是固定的,是根据自己请求的资源生成的

          (2)响应报文结构(注意空格和回车)

                   

                   [ 状态行 ]:版本指的是 HTTP 协议版本

                                 状态码和原因短语:代表请求状态的代码(图片来源见水印)

                                               

                   [ 响应头]:包含响应的各种参数

 

猜你喜欢

转载自blog.csdn.net/Jeeson_Z/article/details/82831492