TCP/IP协议—HTTP

这篇具有很好参考价值的文章主要介绍了TCP/IP协议—HTTP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTTP协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一种请求-响应的协议,用户可以通过HTTP向服务器上传、下载数据。HTTP基于TCP协议,是web应用中最主要的应用层协议,比如浏览器上网就是使用HTTP协议。通讯端口默认为80。

超文本安全传输协议(Hypertext Transfer Protocol Secure,HTTPS)是加入安全加密的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS的安全基础是SSL/TLS。通讯端口默认为443。

HTTP协议源文档

HTTP通讯特点

  • 可靠传输:HTTP基于TCP,需要先连接再传输数据,因此也集成了TCP可靠传输的特性。
  • 立即响应:HTTP是无状态的协议,即不存储业务处理状态,每个请求都是互相独立、毫无关联的,协议不要求客户端或服务器记录请求相关的信息。
  • 单向请求:HTTP基于客户端-服务器模式,HTTP只能从客户端向服务器发起请求,服务器不能主动向客户端发起请求。
  • 灵活传输:HTTP可以传输任意类型的数据。

HTTP通讯流程

  1. 客户端发起HTTP请求,与服务器建立TCP连接。
  2. 客户端向服务器发送HTTP报文。
  3. 服务器收到HTTP报文后进行业务处理,然后返回结果。

HTTPS通讯流程

HTTPS是在HTTP的基础上加入了TLS,且在数据传输的过程中使用证书对数据进行加密。

  1. 客户端向服务器发送HTTP请求,建立TCP连接,并发送TLS相关信息如:生成的随机数。
  2. 服务器回复TLS相关信息,同时传送自己的CA证书(公钥)。
  3. 客户端验证服务器传送过来的信息是否具备合法性,比如CA证书的颁发机构是否可靠、CA证书是否过期,域名与证书是否一致等。
  4. 客户端会生成一个用于通信的“对称密钥”,然后通过公钥对密钥进行加密,并且传送到服务器。
  5. 如果服务器要求身份认证(可选),客户端会生成一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户端证书以及“对称密钥”一起传给服务器。
  6. 如果服务器要求身份认证(可选),服务器会验证随机签名和客户端证书是否具备合法性,比如:客户端证书日期是否有效,颁发客户端证书的CA机构是否可靠等。
  7. 服务器将用私钥将“对称密钥”进行解密,然后服务器将使用“对称密钥”加密的回复发送给客户端。
  8. TLS加密结束,接下来的数据传输将会使用“对称密钥”进行数据通信。

HTTP请求报文

TCP/IP协议—HTTP,TCP/IP,tcp/ip,http,网络协议

HTTP报文主要分为三部分:请求行、请求头部、请求数据。
需要注意的是,HTTP报文的每一行都需要换行符,请求头部与请求数据之间还需要一个空行。

  • 请求行:包含请求方法,URL,协议版本。其中协议版本目前广泛使用的还是HTTP/1.1。
  • 请求头部:使用键值对的数据格式(key: value),用于声明请求的属性参数。
  • 请求数据:具体的请求数据。发送不同的数据会有不同的格式。

通常在POST请求时才会有请求数据部分

  1. 文本数据,以访问OpenAI ChatGPT的请求为例
POST /v1/chat/completions HTTP/1.1   //post请求,具体访问URL为/v1/chat/completions,HTTP/1.1 协议
Host: api.openai.com                 //访问的服务器域名
Authorization: sk-xxxxxxxxxxxxxxxx   //服务器需要的认证头部
Content-Type: application/json       //请求数据的数据类型
Content-Length: 179                  //请求数据数据长度

{                                   //请求数据
    "model":"gpt-3.5-turbo",
    "max_tokens":1000,
    "temperature":0.8,
    "messages": [
      {
        "role": "user",
        "content": "讲个小故事"
      }
    ]
}
  1. 文件数据,以访问OpenAI transcriptions的请求为例
POST /v1/audio/transcriptions HTTP/1.1  //post请求,具体访问URL为/v1/chat/completions,HTTP/1.1 
Host: api.openai.com                    //访问的服务器域名
Authorization: sk-xxxxxxx               //服务器需要的认证头部
Content-Length: 360                     //请求数据数据长度
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW  //请求数据的数据类型,包括数据分隔符

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="/C:/Users/zou/Desktop/16k.wav" //传输的数据信息描述
Content-Type: audio/wav              //传输的数据类型。与数据要个一个空行

(音频文件数据)
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name=modle  //传输的数据信息描述。与数据要个一个空行

whisper-1
------WebKitFormBoundary7MA4YWxkTrZu0gW--   //最后的分隔符多了 -- 表示数据结尾

请求方法

请求方法 作用
GET 此方法用于请求指定资源的表示形式。GET请求通常用于数据检索,例如请求网页内容。GET请求的参数通常附加在URL后面。
POST 此方法用于向指定资源提交数据以创建或更新资源。POST请求通常包含在请求体中的数据,适用于提交表单或上传文件。
HEAD 与GET方法相似,但HEAD不返回响应体,仅返回状态行和标题部分。HEAD方法主要用于获取响应的元数据。
PUT 此方法用于将数据发送到服务器以创建或更新资源。PUT方法用上传的内容替换目标资源中的所有当前内容。
DELETE 此方法用于请求服务器删除指定的资源。DELETE请求会导致服务器删除URI指定的目标资源的所有当前内容。
OPTIONS 此方法用于获取当前URL支持的方法列表。OPTIONS请求返回服务器支持的方法列表,对于查看API端点的可用操作非常有用。
TRACE 此方法用于回显服务器收到的请求,主要用于测试或诊断网络路径上的问题。

HTTP应答报文

HTTP应答报文与HTTP请求报文格式类似,区别在与请求行。
以百度的应答报文为例

HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: text/html; charset=utf-8
Date: Thu, 18 Apr 2024 02:21:36 GMT
X-Ua-Compatible: IE=Edge,chrome=1
X-Xss-Protection: 1;mode=block
Transfer-Encoding: chunked

请求行中没有请求方式以及URL,但是多了状态码

状态码

TCP/IP协议—HTTP,TCP/IP,tcp/ip,http,网络协议
常用的状态码如下

状态码 返回消息 状态码含义
100 Continue 表示服务器已经接收到一部分请求,客户可以继续发送
101 Switching Protocols 用于响应客户端的 Upgrade请求头发送的,指明服务器即将切换的协议
102 Processing 表示服务器已经接收到请求并且正在处理,但尚未完成处理
200 OK 请求成功并已正确处理返回
201 Create 请求成功,并因此创建了一个新的资源。这通常是在 POST 请求,或是某些 PUT 请求之后返回的响应
202 OK 表示请求已被接受,但处理尚未完成
204 No Content 表示请求成功处理,但没有返回内容
301 Moved Permanently 请求资源的 URL 永久移动到了一个不同的URL,在响应中给出了新的 URL
302 Found 请求资源的 URL 临时移动到了一个不同的URL,在响应中给出了新的 URL
400 Bad Request 错误请求,服务器无法或不会处理请求
401 Unauthorized 表示客户端的请求没有身份验证或者验证失败
403 Forbidden 客户端没有访问内容的权限
404 Not Found 服务器找不到请求的资源
415 Unsupported Media Type 服务器不支持请求数据的媒体格式
414 URI Too Long 客户端请求的 URI 长度超过服务器所接受的长度
429 Too Many Requests 客户端在给定的时间内发送了太多请求
431 Request Header Fields Too Large 客户端在给定的时间内发送了太多请求
500 Internal Server Error 服务器内部错误,当服务器在处理请求时遇到了意外错误或异常情况,无法完成请求
502 Bad Gateway 表示代理服务器无法正确地转发请求并获得有效的响应

学习笔记,有问题欢迎指出文章来源地址https://www.toymoban.com/news/detail-858644.html

到了这里,关于TCP/IP协议—HTTP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP、IP、TCP/IP、HTTP和HTTPS协议简介

    TCP、IP、TCP/IP、HTTP和HTTPS都是计算机网络通信中常见的协议。 TCP TCP(Transmission Control Protocol)是传输层协议,在网络通信中提供可靠的、面向连接的数据传输服务。TCP协议确保数据的可靠性、完整性和有序性,并且可以自动进行重传和错误校验,为应用层提供了可靠的数据传输

    2024年02月04日
    浏览(32)
  • TCP/IP协议—HTTP

    超文本传输协议(Hypertext Transfer Protocol,HTTP)是一种请求-响应的协议,用户可以通过HTTP向服务器上传、下载数据。HTTP基于TCP协议,是web应用中最主要的应用层协议,比如浏览器上网就是使用HTTP协议。通讯端口默认为80。 超文本安全传输协议(Hypertext Transfer Protocol Secure,

    2024年04月26日
    浏览(31)
  • TCP/IP详解——HTTP 协议

    HTTP协议是Hyper Text Transfer Protocol( 超文本传输协议 )的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。HTTP工作在TCP协议的 80 端口上。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等),HTTP协议是基于TCP的

    2024年02月04日
    浏览(43)
  • HTTP 协议和 TCP/IP 协议之间有什么区别?

    HTTP(超文本传输协议)和TCP/IP(传输控制协议/互联网协议)是两种在互联网通信中广泛使用的协议,它们之间的区别和联系对许多人来说可能还不是很清晰,今天我们就带大家来一起了解一下HTTP和TCP/IP协议这2者之间的主要区别和功能。 我们来看看HTTP协议。HTTP是一种应用层

    2024年01月20日
    浏览(39)
  • HTTP、TCP/IP协议族、分层管理、DNS、URI

    第一章 使用HTTP协议访问WEB 浏览器输入URL 请求后端服务器 后端服务器经过处理之后返回相应的信息(resource) 发送请求的机器,我们可以叫做 客户端(client) 。 处理请求的机器,我们可以叫做 服务器 。 客户端和服务器之间的协议就是我们的主角:HTTP。换句话说,WEB是建立

    2024年02月02日
    浏览(31)
  • 网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解

    目录 前文链接(系列助学, 也为后文学习做铺垫, 可按需读取) 一. 再谈HTTP再理解 二. HTTP对比学习HTTPS HTTP和HTTPS的区别如下: 三.TCP协议  (三次握手四次挥手细节过程理解在之前的博文中有详细图解) tcp缓冲区概念的引入  (解释流量控制): 确认应答(ACK)机制的理解 (编序号)

    2023年04月09日
    浏览(30)
  • TCP/IP,UDP,DNS,NAT,DHCP,HTTP协议

    1.TCP/IP协议 TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个

    2024年01月17日
    浏览(34)
  • 第138篇:了解HTTP协议(TCP/IP协议,DNS域名解析,浏览器缓存)

    好家伙,发现自己的网络知识十分匮乏,赶紧补一下   这里先举个我生活中的例子 欸,作业不会写了,上网搜一下 用edge浏览器上bing必应搜一下(百度广告太多了,真不想用百度举例子)   假设这是我们第一次访问bing的首页 当我向浏览器中输入https://cn.bing.com/并按下回车

    2023年04月24日
    浏览(28)
  • OSI(七层)网络模型,三次握手四次挥手梳理,Socket.TCP/IP.HTTP三者说明

    目录 一   OSI网络模型 二   三次握手与四次挥手的简单理解 ● 常见问题梳理 三   Socket,TCP/IP,HTTP ① TCP/IP连接 ② HTTP连接 ③ Socket说明 ● 套接字(socket)概念 ● 建立socket连接 四   Socket连接与TCP/IP连接 五   Socket连接与HTTP连接 OSI网络模型也称七层网络模型 7 应用层

    2023年04月09日
    浏览(31)
  • TCP/IP四层模型、HTTP、HTTPS、TCP

    网络协议   在计算机网络要做到井井有条的交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。 为什么要对网络协议分层   1、简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为

    2023年04月08日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包