HTTP协议详解

本文涉及的产品
.cn 域名,1个 12个月
简介: HTTP是HyperText Transfer Protocol(超文本传输协议)的缩写,是互联网上面应用最为广泛的的一种网络协议。HTTP是一个基于TCP/IP协议的客户端和服务器端请求和应答的标准。客户端一般是本地浏览器。

目录

    • 概述
    • 特点
    • HTTP URL 详解
    • HTTP Request 请求
    • HTTP Response 响应
    • HTTP 状态码
    • HTTP 工作流程

    概述

    HTTP是HyperText Transfer Protocol(超文本传输协议)的缩写,是互联网上面应用最为广泛的的一种网络协议。HTTP是一个基于TCP/IP协议的客户端和服务器端请求和应答的标准。客户端一般是本地浏览器。

    HTTP是一个工作在应用层的面向对象协议,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送请求。服务器根据接收到客户端请求后,根据URL传递的信息,对应向客户端发送响应的信息。

    特点

      • 简单快速,浏览器向服务器发送请求的时候,一般情况下,只需要传递请求方法和路径,例如常用的POST、GET请求。因为这种简单的特点,使得HTTP服务器的压力也会比较小。保证了双方通信的及时快速。
      • 灵活,HTTP几乎支持传递所有类型的数据对象。如文字、图像、音频、视频等。传输的具体对象标识在Header的参数Content-Type中。
      • 无连接,这一点相信有过HTTP通信开发的人员都能够感受到,HTTP限制每次链接只处理一个请求。服务器处理完该请求并接受到客户端的应答后,才能接受第二次请求。
      • 无状态,表示处理本次的请求对之前的请求没有记忆能了,保证每个请求事务的完整性。后续处理如果要和之前关联,必须携带上之前的参数供服务器判断,这点可能导致每次传送的链接数据量增大,如果每次都是单独的业务操作,服务器的应答就会很快。
      • 支持浏览器/服务端(B/S)、客户端/浏览器(C/S)。

      HTTP URL 详解

      URL(Uniform Resource Locator)统一资源定位符,是一个HTTP通信中一个比较直接被用户接触到的东西,也是一个很重要的组成部分。其依托于URI(UniformResource Identifiers)统一资源标识符,来传输和建立连接。URL是一种特殊的URI,它更为细化的定位到了某个资源。下面通过一个完整的URL来分析这个里面包含的信息。

      https://www.hehehe.com:8080/he/index.php?user=123424#openDialog=1

        • 协议:上面URL使用到的协议是“https:”,代表该网站是使用的HTTP协议。在Internet中,还有其他协议,如HTTP协议,文件传输用到的FTP协议。这些协议后面使用“//”作为分隔符。
        • 域名:上面URL的域名就是“www.hehehe.com”。一个URL可以使用域名,也可以直接使用域名所解析到的IP访问。
        • 端口:跟在域名后面的就是端口,上面的8080就是端口,域名和端口之间通过“:”来分开,端口不是必须的,缺省状况默认的端口是80,在服务器上,每一个对外提供服务的应用程序都有端口。常用的MySQL是3306,Apache是80。FTP为22等。
        • 虚拟目录:域名部分后面第一个“/”到最后一个“/”为止,是虚拟目录的部分,虚拟目录也不是URL的必须的部分。如“www.baidu.com”也可以直接访问百度,上面的URL中"/he/"就是一个虚拟目录。
        • 文件部分:URL中从最后一个“/”到“?”中间的部分就是文件,如果没有“?”,就是到“#”。如上面的“index.php”就是一个文件。
        • 参数部分:从“?”到“#”的部分,上面的“user=123424”就是参数。
        • 锚部分:从“#”到最后都是锚部分,上面的“openDialog=1”就是锚部分。

        HTTP Request请求

        在概述中我们说到了,一次完整的HTTP请求,需要有客户端发起请求以及服务端相应请求的操作。Request就是客户端发起的请求。

        HTTP请求的类型有以下一些,主要用到的就是GET和POST两种。GET用户快速传递简单的,较小的参数。POST用于传输较大的复杂的数据类型。

        image.gif编辑

        一个HTTP Request主要包含以下几个部分。

          • 请求行(Request Line),请求行以一个方法头部开头,然后紧跟一个空行,后面跟着URI和协议的版本。
          • 请求头部(Request Header),头部里面包含一些基本属性,如指向的具体主机信息、请求的发起参数类型、访问请求的客户端信息、一些授权信息等。
          • 空行,介于请求头部与请求主体之间,必须要有。
          • 请求主体(Request Body),在GET请求中,请求的参数是和头部一起的,在POST请求中,请求主体是单独存在的。

          HTTP Response响应

          在服务器接受到HTTP的请求后,一般要给出一个响应消息。响应消息也是由四部分组成,大体和请求消息类似。

          image.gif编辑

            • 状态行,由HTTP版本号,状态码,状态消息三部分组成
            • 消息报头,用来标识一些附加信息,如上图中的第二行和第三行。标识了一些时间,页面字符编码信息。
            • 空行,上面的第四行,也是必须的。
            • 响应正文,空行后面的HTML信息就是正文。

            HTTP 状态码

            状态码就是访问服务器,服务器给出的返回提醒,大体上讲状态码,可以看到这些信息。

              • 1XX:表示请求接受,正在处理。
              • 2XX:表示处理成功,请求被接受、理解、接受。
              • 3XX:表示重定向,完成请求需要更进一步的操作。
              • 4XX:客户端请求不正确,请求被中断或者服务器找不到资源。
              • 5XX:服务器内部错误,无法完成请求。

              HTTP 工作流程

              下面介绍一个一次完整的HTTP请求会经历那些过程:

                • 客户端连接到HTTP服务器。
                • 客户端发送HTTP Request请求。
                • 服务器接受请求并返回HTTP响应。
                • 两端释放TCP连接。
                • 浏览器获取到Response的内容渲染到页面供用户浏览。

                 


                相关文章
                |
                7天前
                |
                算法 网络协议 安全
                HTTP/2 协议的缺点是什么?
                HTTP/2 协议的缺点是什么?
                |
                7天前
                |
                网络协议 网络安全 网络虚拟化
                本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
                本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
                36 3
                |
                18天前
                |
                网络协议 安全 Go
                Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
                【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
                46 13
                |
                11天前
                |
                传感器 缓存 网络协议
                CoAP 协议与 HTTP 协议的区别
                CoAP(Constrained Application Protocol)协议是为资源受限的设备设计的轻量级协议,适用于物联网场景。相比HTTP,CoAP具有低功耗、低带宽占用和简单易实现的特点,支持多播通信和无连接的交互模式。
                |
                16天前
                |
                开发者
                HTTP 协议请求方法的发展历程
                【10月更文挑战第21天】
                |
                16天前
                |
                安全
                HTTP 协议的请求方法
                【10月更文挑战第21天】
                |
                16天前
                |
                缓存 安全 前端开发
                HTTP 协议的请求方法在实际应用中有哪些注意事项?
                【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
                |
                18天前
                |
                存储 缓存 网络协议
                计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
                计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
                |
                20天前
                |
                网络协议 前端开发 API
                HTTP 和 TCP 协议的应用场景有哪些不同
                【10月更文挑战第25天】HTTP(超文本传输协议)和 TCP(传输控制协议)处于网络协议栈的不同层次,各自具有独特的功能和特点,因此它们的应用场景也存在明显的差异。
                |
                20天前
                |
                安全 前端开发 JavaScript
                利用HTTP协议进行文件上传和下载的常见方法
                【10月更文挑战第25天】可以利用HTTP协议方便地实现文件的上传和下载功能,满足不同应用场景下的需求。在实际应用中,还可以根据具体的业务需求和安全要求,对文件上传和下载的过程进行进一步的优化和安全处理。

                热门文章

                最新文章