• http协议格式详解


    [HTTP协议格式详解]

    一、URI结构

    HTTP使用统一资源标识符(URI)来传输数据和建立连接。URL(统一资源定位符)是一种特殊种类的URI,包含了用于查找的资源的足够的信息,我们一般常用的就是URL,而一个完整的URL包含下面几部分:

    http://www.fishbay.cn:80/mix/76.html?name=kelvin&password=123456#first

    1.协议部分

    URL的协议部分为http:,表示网页用的是HTTP协议,后面的//为分隔符

    2.域名部分

    域名是www.fishbay.cn,发送请求时,需要向DNS服务器解析IP。如果为了优化请求,可以直接用IP作为域名部分使用

    3.端口部分

    域名后面的80表示端口,和域名之间用:分隔,端口不是一个URL的必须的部分。如果端口是80,也可以省略不写

    4.虚拟目录部分

    从域名的第一个/开始到最后一个/为止,是虚拟目录的部分。其中,虚拟目录也不是URL必须的部分,本例中的虚拟目录是/mix/

    5.文件名部分

    从域名最后一个/开始到?为止,是文件名部分;如果没有?,则是从域名最后一个/开始到#为止,是文件名部分;如果没有?#,那么就从域名的最后一个/从开始到结束,都是文件名部分。本例中的文件名是76.html,文件名也不是一个URL的必须部分,如果没有文件名,则使用默认文件名

    6.锚部分

    #开始到最后,都是锚部分。本部分的锚部分是first,锚也不是一个URL必须的部分

    7.参数部分

    ?开始到#为止之间的部分是参数部分,又称为搜索部分、查询部分。本例中的参数是name=kelvin&password=123456,如果有多个参数,各个参数之间用&作为分隔符。

    二、Request

    HTTP的请求包括:请求行(request line)、请求头部(header)、空行 和 请求数据 四个部分组成。get请求没有请求体。

    image

    三、Response

    1.状态行

    状态行由协议版本号、状态码、状态消息组成
    2.响应头

    响应头是客户端可以使用的一些信息,如:Date(生成响应的日期)、Content-Type(MIME类型及编码格式)、Connection(默认是长连接)等等
    3.空行

    响应头和响应体之间必须有一个空行
    4.响应体

    响应正文,本例中是键值对信息

    四、工作原理

    HTTP协议采用请求/响应模式,客户端向服务器发送一个请求报文,然后服务器响应请求。下面介绍一下一次HTTP请求的过程:

    1. 在浏览器中输入URL,并按下回车键
    2. 浏览器向DNS服务器请求解析该URL中的域名对应的IP地址(如果是IP请求,则不需要该步骤)
    3. 解析出IP后,根据IP和端口号,和服务器建立TCP连接
    4. 浏览器向服务器发送请求,该请求报文作为TCP三次握手的第三个报文发送给服务器
    5. 服务器做出响应,把数据发送给浏览器
    6. 通信完成,断开TCP连接
    7. 浏览器解析收到的数据并显示

    五、网络传输的基本流程

    分为四层:

    • 应用层:FTP
    • 传输层:TCP
    • 网络层:IP
    • 链路层:MAC地址
      首先用户层需要传输文件,那么就需要文件传输协议。
      在需要传送的数据加上文件传输协议的报头,呼叫下一层。
      传输层接收到这个指令之后,加上该层的协议报头,再呼叫下一层。
      网络层收到这个指令之后,加上网络层的报头,传给链路层。
      链路层的协议中包括传送目标。通过局域网传送给了对方主机的链路层。
      以上过程称为——封装。
      mac地址可以标识全世界上唯一一台主机,出厂时就自带的,
      ip地址可以标识世界上唯一一台联网的主机
  • 相关阅读:
    第二次编程作业总结
    structs get 方法乱码问题
    网址记录
    尸体解剖报告
    最后冲刺
    回答自己的提问——对自己最大的反馈
    构建之法13-17章读后感
    典型场景
    对其他各团队的评价
    用户调研
  • 原文地址:https://www.cnblogs.com/emptyCup/p/13141122.html
Copyright © 2020-2023  润新知