Http 协议, 前后端交互理解

目录

HTTP协议引入

HTTP的特征

http协议,以及从前后端交互角度去理解

无状态

无连接

客户端请求消息

 服务器响应消息

HTTP 请求方法(常用款)

HTTP 响应头信息 (常用款)

HTTP 状态码 (常用款)

简单的写一个minihttp


HTTP协议引入

http超文本传输协议, 是基于  TCP/IP协议处理传输细节   的应用层协议

传输数据类型:

  1. html文本文件  text/html
  2. 图片文件
  3. 响应内容

HTTP的特征

http协议,以及从前后端交互角度去理解

http传输协议是基于 (C-S架构)双向的传输协议, C客户端发送请求, S服务器响应请求

客户端一般就是web浏览器, 服务器一般就是web服务器.   

浏览器表示前端, web服务器表示后端, 这也算是一个前端跟后端的典型交互实例了

前端浏览器像后端服务器通过URL进行全局的资源定位请求网页内容,  后端服务器接收解析请求。响应内容,响应数据.

后端服务器任务: 为前端提供数据支撑, 计算支撑. 服务支撑.   服务器还可能需要连接请求第三方服务器. 通常也叫做上游服务器 (mysql,redis等)

无状态

无状态, 代表着无记忆能力. 对于历史请求没有任何的信息的记录. 历史重复的请求到来, 还是需要从新建立连接, 还是需要SSL验证, 新的请求需要用到之前的一些信息, 也必须进行一个重传, 这样对于新的连接需要传输更多的数据, 但是服务器不需要记录信息. 可以加快应答速率. 也可以降低服务器的压力. 

无连接

此处的无连接并不是实际意义上的不用建立连接, 连接时需要建立的, 只不过连接仅仅支撑一次响应请求., 也就是说客户端向服务器发送一次请求. 服务端完成响应,  然后服务器确认收到客户端的ACK确认应答包.  随即断开连接

无连接的含义是限制每次连接只处理一个请求

客户端请求消息

客户端发送一个 HTTP 请求到服务器的请求消息包括以下格式:请求行(request line)、请求 头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式

服务器接收缓冲区接收到一整个缓冲区信息, 然后如何解析的. 按照行进行解析, 行分割\r\n.  回车换行进行分割   (报文规定, 协议, 双方的约定)

 服务器响应消息

HTTP 响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文

 

简易版本的http服务器书写实现, 我们是在http协议的基础上遵循协议规则. 封装报文结构. 传输. 双方都按照头部中的协议信息进行解析,按照http协议规则解析即可.    

我们做的仅仅只是按照协议格式一行一行的解析客户端的请求 + 请求正文. 然后对于解析出来的请求进行一个响应即可. 响应正文也要按照这个协议规则格式进行封装. 就有点像写信的意思

HTTP 请求方法(常用款)

GET : 请求页面,并且需要返回页面正文 (实体)

HEAD: 几乎和GET请求一致,只不过它不需要返回实体,仅仅返回报头

POST:像服务器上传数据, 比如上传一个网页.

HTTP 响应头信息 (常用款)

Content-Length:表示正文内容长度

Content-Type:正文内容的文档类型

Content-Type:服务器名称

Content-Encoding:文档的编码方式

HTTP 状态码 (常用款)

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并 显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header) 用以响应浏览器的请求。

HTTP 状态码的英文为 HTTP Status Code。

下面是常见的 HTTP 状态码:

  • 200  OK  请求成功, 一般用于GET和POST请求
  • 404  Not Found  没有找到资源(网页), URL不存在
  • 500 Internal Server Error 服务器内部错误,无法完成请求
  • 501 Not Implemented 服务器不支持请求的功能,无法完成请求

简单的写一个minihttp

(思路源头源于奇牛教育B栈http服务器开发, 我觉得思路讲的相当清楚,初学者友好)

我写的代码. 总体来说变化不大, 如果想要细致学习这个代码的, 小杰附上网址一份:

 LinuxC/C++ 实现高并发http 服务器实践实现一个http 服务器项目,服务器启动后监听80端口的tcp 连接,当用户通过任意一款浏览器(IE、火狐和icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=Mzk0MzE5MTkzOA==&mid=2247486985&idx=1&sn=b25e00598eb4a6e460f9850a3306478f&chksm=c336ece4f44165f2a58b2c9a55584bbb079815614f76e39f5e7065685fd21a0bd5396f761014&scene=178&cur_album_id=1828517084830498816#rd

  • 94
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 143
    评论
以下是关于Unity和Java前后端交互的文档内容示例: 1. 引 - 介绍文档的目和范围,说明Unity和Java前后端交互的重要性和意义。 2.术选择 - 解释为什么选择使用Java作为后端语言,并说明Unity与Java交互的方式和原理。 3. 后端搭建 - 详细描述如何搭建Java后端环境,包括安装Java开发工具、配置开发环境、启动服务等。 4. 接口设计 - 定义前后端接口的数据格式和协议,如JSON、XML等。说明接口的参数、返回值和可能的错误码。 5. Unity集成 - 介绍如何在Unity中集成Java后端,包括添加相关依赖库、配置网络请求、处理数据传输等。 6. 数据交互 - 示范如何在Unity中向Java后端发送请求并获取响应。包括使用HTTP协议、WebSocket或其他通信方式。 7. 用户认证 - 解释如何在前后端交互中实现用户认证和授权功能,保证数据安全性。 8. 异常处理 - 讨论前后端交互中可能出现的异常情况,并提供相应的异常处理机制。 9. 性能优化 - 提供一些建议和技巧,以优化前后端交互的性能,包括网络请求的批量处理、数据压缩、缓存等。 10. 安全性 - 强调前后端交互中的安全性问题,如数据加密、防止XSS、CSRF等攻击。 11. 测试与调试 - 介绍如何进行前后端交互的测试和调试,包括单元测试、集成测试、接口调试等。 12. 部署与运维 - 提供部署和运维Unity和Java前后端交互的建议,包括服务器配置、日志管理、监控等。 13. 参考资料 - 列出用于设计和实施Unity和Java前后端交互的参考资料,如文档、教程、案例等。 这些内容是文档中常见的部分,具体的文档内容可能会根据项目需求和实际情况进行调整和扩展。在编写文档时,应该清晰、准确地描述Unity和Java前后端交互的步骤和技术细节,以便团队成员理解和实施。
评论 143
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杰312

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值