gpt4 book ai didi

c - http服务器如何从客户端接收文件

转载 作者:可可西里 更新时间:2023-11-01 16:57:13 29 4
gpt4 key购买 nike

我已经编写了通过 HTTP 将客户端用户密码发送到 HTTP 服务器以进行验证的代码。我生成查询字符串(包含 usrpwd)并将请求发送到服务器。行得通。

但现在我必须向该服务器发送一个文件 (text/xml)。我不知道怎么办。

我们是否必须在服务器端或只在客户端编写一些代码?

服务器接收文件和客户端发送文件的机制是什么?

最佳答案

HTTP协议(protocol)真的很简单,其实是:

  1. 客户端发送包含 HTTP 方法名称、URL 和协议(protocol)版本的行
  2. 客户端发送包含请求参数的 RFC822 header ,如果后面是数据 block ,则发送有关数据 block 的详细信息。
  3. 客户端发送数据 block
  4. 服务器发送包含协议(protocol)版本、状态码和消息的一行
  5. 服务器发送包含响应参数的 RFC822 header ,如果后面是数据 block (或客户端执行 HEAD 请求),则发送有关数据 block 的详细信息
  6. 服务器发送数据 block ,除非方法是 HEAD。
  7. 要么断开连接,要么重新启动协议(protocol)。

通常,服务器至少会理解这些方法:

  • GET(客户端不发送数据 block ,服务器发送数据 block )
  • HEAD(同GET,但服务器省略响应数据 block )
  • POST(客户端发送数据 block ,服务器响应数据 block )
  • PUT(客户端发送数据 block ,服务器不发送数据 block )

在方法的选择上有一些隐含的语义,因为 GET 请求永远不会修改服务器状态并且它们的结果可以被缓存和重用(这是允许浏览器在页面之间来回移动的原因),而 POST 请求则可以更改服务器状态——顺便说一下,这是您上传文件时所做的。

因此,为了发送文件,准备一个 POST 或 PUT 请求(取决于您是否期望回复文档,或者一个简单的确认状态代码是否足够),它由请求行组成, header 包含额外的协议(protocol)信息(“Host:”,“User-Agent:”,...),描述文件的标题(“Content-Type:”,“Content-Length:”,...),一个空行,以及文件内容,并通过 TCP 连接发送,然后读回状态行、响应 header 和响应文件(如果您要求的话)。

关于c - http服务器如何从客户端接收文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9582892/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com