【一文读懂】HTTP与Websocket协议

HTTP协议

概述

HTTP (Hypertext Transfer Protocol),即超文本传输协议,是一种用于在客户端和服务器之间传输超文本(例如网页、图片、音频、视频等)的通信协议。它是万维网(WWW)的基础,负责在浏览器(客户端)和 web 服务器之间交换信息。HTTP 是一个 应用层 协议,位于 OSI 模型的第七层,通常通过 TCP(传输控制协议)进行通信。

HTTP 是无状态的、面向请求/响应的协议,意思是每一次请求都是独立的,服务器不会保存客户端的状态。每次客户端发起请求,服务器都必须处理并响应,即使是同一个客户端的连续请求,也被视为独立的。

HTTP 请求/响应模型

HTTP 协议基于请求/响应模型,通信流程包括两部分:客户端发送请求,服务器返回响应。

1. HTTP 请求报文(Request Message)

一个 HTTP 请求报文主要由以下几个部分组成:

  • 请求行(Request Line)

    • 请求方法(Request Method)

      :定义了客户端希望进行的操作,常见的 HTTP 请求方法包括:

      • GET:请求指定的资源,通常用于获取网页或文件。
      • POST:将数据提交到服务器,常用于表单提交。
      • PUT:上传数据,通常用于更新服务器上的资源。
      • DELETE:删除指定的资源。
      • HEAD:与 GET 方法类似,但只返回响应头,不返回实际内容。
      • PATCH:用于对已有资源进行部分修改。
    • 请求 URL(Request URL):指定资源的位置,例如 https://www.example.com/index.html

    • 协议版本(HTTP Version):指定使用的 HTTP 协议版本,通常是 HTTP/1.1HTTP/2

    示例

    GET /index.html HTTP/1.1
    
  • 请求头部(Request Headers) 请求头部包含了请求的元信息,描述客户端环境、请求内容类型、认证信息等。例如:

    • User-Agent:指定发起请求的客户端软件信息。
    • Accept:指定客户端能够处理的内容类型(如 text/htmlapplication/json 等)。
    • Host:指定请求目标的主机名(用于虚拟主机的支持)。
    • Cookie:包含发送给服务器的 Cookie 数据。
    • Authorization:包含授权信息,用于身份验证。

    示例

    User-Agent: Mozilla/5.0
    Accept: text/html,application/xhtml+xml
    
  • 请求体(Request Body) 请求体通常在 POSTPUT 等方法中使用,用于传送数据到服务器(例如表单提交的数据、JSON 数据等)。GET<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值