http的请求体各项解析

一、前言

做Java开发的人员都知道,其实我们很多时候不单单在写Java程序。做的各种各样的系统,不管是PC的 还是移动端的,还是为别的系统提供接口。其实都离不开http协议或者https 这些东西。Java作为编程语言,再做业务开发时,已经不单单停留在Java上面了。通讯协议是Java对外提供服务的渠道。本节介绍一下http请求和响应里的各项属性的含义。所谓的htt协议,其实就是定义了一套参数,参数代表着一些约定的含义,这就是所谓协议

二、http请求体结构解析

http请求报文格式:请求行,请求头,请求体

请求行:包括四个部分 请求方法、请求地址、空行、协议版本、

http常用的几种请求方法:get、post、put、delete、option、head等等。

请求头:请求报文的一些附加信息。

1、请求头包含的信息

请求头的最后有一行空行表示请求头的结束,这一很重要,必不可少。这是判断请求头是否结束的条件。

请求体:英文(request body),post请求就是靠这个来传递参数,而get方法就没有这个请求体;

一个简单的post请求实例:

各行属性解析

http响应报文格式:

同样的,http响应报文也包括了四个部分:响应行、响应头、空行、响应体。

响应行:包括协议版本、状态码

响应头:响应报文的一些附加信息

响应体各属性解析

三、http通讯过程

DNS解析

首先,客户端通过DNS解析域名得到服务器的IP地址。

建立连接

客户端与服务器通过三次握手建立连接。

发起请求

客户端发送HTTP请求报文给服务器。

服务器响应

服务器根据请求的端口号、路径等信息找到对应的资源文件,并将响应的源代码返回给客户端。

客户端处理

客户端接收到响应数据后,开始解析页面并请求其他资源。

渲染页面

客户端根据解析的数据渲染页面。

断开连接

服务器与客户端通过四次挥手断开连接。

三次握手与四次挥手

三次握手

概念:TCP协议在建立连接时的一种通信方式,用于确保通信双方的可靠性。

流程

客户端发送SYN包给服务器,请求建立连接。

服务器回复SYNACK包,表示同意建立连接。

客户端发送ACK包,确认建立连接。

四次挥手

概念:TCP协议在断开连接时的一种通信方式。

流程

客户端发送FIN包给服务器,表示没有数据要发送。

服务器回复ACK包,确认收到FIN包。

服务器发送FIN包给客户端,表示没有数据要发送。

客户端回复ACK包,确认收到FIN包,然后进入TIMEWAIT状态,等待一段时间后关闭连接。

通过这些步骤,HTTP协议确保了客户端与服务器之间的可靠通信。

相关推荐
上海安当技术5 小时前
固件签名与Secure Boot:安当CAS如何构建汽车固件信任链
网络·汽车·信任链·boot·secure·固件签名·安当cas
上海安当技术6 小时前
诊断接入认证:安当CAS如何堵住汽车网络安全的物理后门
网络·web安全·汽车·access·secure·安当cas·诊断接入认证
ze^06 小时前
【软考信息安全】第2章 网络攻击原理与常用方法
网络·web安全·网络安全
这个DBA有点耶7 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
arbboter7 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
消失的旧时光-19439 小时前
第一篇:Ktor Client 到底是什么?从 Retrofit 迁移理解 Ktor 网络请求架构
网络·架构·retrofit·ktor·dsl
数据知道9 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
江畔柳前堤10 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
LabVIEW开发10 小时前
LabVIEW 通过以太网控制 Yokogawa WT3000 功率分析仪:tmctl.dll 与原始套接字方案
网络·labview·labview知识·labview功能·labview程序
xiaoxiangsiyan11 小时前
企业日常运维高频应用服务全解
运维·网络·云原生·容器·dns