HTTP协议简介_请求消息/请求数据包/请求报文_响应消息/响应数据包/响应报文

文章目录

  • HTTP 介绍
  • 请求数据包/请求消息/请求报文
    • 请求数据包解析
  • 响应数据包/响应消息/响应报文

HTTP 介绍

概念:Hyper Text Transfer Protocol 超文本传输协议
传输协议:定义了客户端和服务器端通信时发送数据的格式

特点:
1.基于TCP/IP的高级协议
2.默认端口号:80
3.基于请求/响应模型的:一次请求对应一次响应
4.无状态的:每次请求之间相互独立,不能交互数据

历史版本:
1.0:每一次请求响应都会建立新的连接;每一次新的请求都会建立新的连接
1.1:复用连接

请求数据包/请求消息/请求报文

1.第一部分,请求行(数据包中的一行内容)

请求行包括三部分内容:
1.1.请求方式(get/post)
2.1.请求资源路径(端口号之后的内容,比如 /appname/servlet
3.1.协议的类型与版本

2.第二部分,若干消息头(消息头是由 w3c 定义的一些有特殊含义的键值对)
也叫请求头,客户端告诉服务端一些信息

2.1.消息头的样式,比如:content-type= text/html;
2.2.服务器和浏览器都会遵守这些消息头的约定。
2.3.消息头一般由服务器或者浏览器自动生成,但是也可以通过编程的方式生成

常见请求头:
1.User- Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息。可以在服务器端获取该头的信息,解决浏览器的兼容性问题
2.Accept:浏览器告诉服务器,浏览器可以接收的内容格式,即服务器可以返回给浏览器什么格式的内容
3.Accept-Encoding:浏览器告诉服务器,浏览器可以接收的压缩格式
4.Referer:告诉服务器,我(当前请求)从哪里来
作用:
防盗链,判断访问来源,从而屏蔽非法访问
统计工作,统计不同的访问来源

在这里插入图片描述

5.Connection:连接状态

3.第三部分,实体内容
也叫请求体,封装请求消息中的请求参数

3.1.如果请求方式是 post 方式,请求参数及值会放在这儿。
3.2.如果请求方式是 get 方式,请求参数与值包含在请求资源路径里面。

请求数据包解析

在这里插入图片描述

在这里插入图片描述

响应数据包/响应消息/响应报文

1.第一部分:状态行
也叫响应行

HTTP/1.1 200 OK
协议版本 状态码 状态码描述

1.1.协议的类型与版本
1.2.状态码(状态码是一个数字,不同的数字代表不同的含义)
1.3.状态码的描述

2.第二部分:若干消息头

也叫响应头

2.1.格式
响应头名称:值

2.1.1Content-Type:text/html;charset=UTF-8
告诉浏览器返回是html格式的文本内容,使用的编码格式是UTF-8。这样浏览器就会使用html引擎解析文本内容,且使用UTF-8进行解码。

2.1.2.Content-Length:101
文本内容的字节数

2.1.3.Content-disposition
in-line:默认值,告诉客户端在当前页面内打开响应体的内容
attachment:告诉客户端以附件形式打开响应体的内容。常用于文件的下载。

3.第三部分:实体内容

也叫响应体
服务器返回给浏览器的最终数据。例如,html源代码;图片的二进制码等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux的open函数的调用过程,Linux 中open系统调用实现原理

用户空间的函数在内核里面的入口函数是sys_open通过grep open /usr/include/asm/unistd_64.h查找到的#define __NR_open2__SYSCALL(__NR_open, sys_open)观察unistd_64.h,我们可以猜测用户空间open函数最终调用的系统调用号是2来发起的sys_open系统调用(毕竟glibc一…

java登录界面命令_Java命令行界面(第29部分):自己动手

java登录界面命令本系列有关从Java解析命令行参数的系列简要介绍了28个开源库,这些库可用于处理Java代码中的命令行参数。 即使涵盖了这28个库,该系列也没有涵盖用于解析Java命令行选项的所有可用开源库。 例如,本系列文章未涉及docopt &…

log nginx 客户端请求大小_nginx

博主会将与Nginx有关的知识点总结到"nginx短篇系列"文章中,如果你对nginx不是特别了解,请按照顺序阅读"nginx短篇系列",以便站在前文的基础上理解新的知识点。当我们访问nginx服务时,nginx会记录日志&#xf…

Linux 下如何查询 tomcat 的安装目录

在命令终端输入如下命令: [roothtlwk0001host ~]# sudo find / -name *tomcat*

rxjava 背压_背压加载文件– RxJava常见问题解答

rxjava 背压事实证明,将文件作为流进行处理非常有效且方便。 许多人似乎忘记了,自Java 8(3年以上!)以来,我们可以很容易地将任何文件变成一行代码: String filePath "foobar.txt"; …

linux 卸载nfs device is busy,umount.nfs: device is busy解决办法

.NET Core全新的配置管理[共9篇]提到“配置”二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化的配置信息定义在这两 ...Windows无法安装到G…

php 时间加法函数_php 时间加减

date_default_timezone_set(PRC); //默认时区echo"今天:",date("Y-m-d",time()),"";echo "今天:",date("Y-m-d",strtotime("18 june2008")),"";echo "昨天:",date("Y-m-d",strtoti…

如何用xapmm测试php_如何在Xampp中运行PHP程序?

成为经过认证的专业PHP是最流行的web后端编程语言。PHP代码将作为web服务器模块或命令行界面运行。要运行PHP for the web,您需要安装像Apache这样的web服务器,还需要像MyS成为经过认证的专业PHP是最流行的web后端编程语言。PHP代码将作为web服务器模块或…

中文标点符号大全

文章目录常见的中文标点符号标点符号的位置中文的标点符号包括句号,逗号,感叹号,问号,引号,冒号等等,接下来分享常见的中文标点符号名称。常见的中文标点符号 句号 。 用于句子末尾,表示陈述语气…

linux 查看链接最终目标,linux学习笔记7-链接

hard link and soft link硬链接:一个文件两个不同的进入,相当于一个教室两个门,从哪个门进都进到同一个教室硬链接特征:1、拥有相同的 i节点 和相同的存储block快,可以看做是同一个文件2、可通过i节点识别,…

apache.camel_Apache Camel 2.20发布–新增功能

apache.camelApache Camel 2.20已于今天发布,并且像往常一样,我受命撰写有关此出色新版本及其亮点的博客。 该版本具有以下重点。 1)Java 9技术预览支持 我们已经开始支持Java 9的工作,此版本称为技术预览。 源代码在Java 9上…

操作无法完成(错误 0x000006ba),Windows 11 PDF打印机无法使用解决办法

操作无法完成(错误 0x000006ba),Windows 11 PDF打印机无法使用解决办法 解决方式一 先重启一次电脑,看看是否可以解决问题。 解决方式二 重新启动 Printer Spooler 服务

java 头像 微信群_java怎么生成带用户微信头像的图片,并把这张图片发送给用户。...

展开全部这个是要一个图片中嵌套另外一张图片你可以62616964757a686964616fe59b9ee7ad9431333431336163试试下面这段代码import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOE…

MyEclipse 的 TCP/IP Monitor 的使用

文章目录步骤 1:新建 web02 工程步骤 2:在 WebRoot 下创建 add_employee.html步骤 3:部署项目步骤 4:启动服务器步骤 5:打开 TCP/IP Monitor步骤 6:增加新的监视器步骤 7:启动监视器步骤 8&…

ubuntu linux mac地址,Ubuntu下修改mac地址

说明,本文翻译自man macchanger,若遇到不能理解的地方请参考man文档概述macchanger是linux下用于查看和修改网络接口mac地址的工具使用方法macchanger [options] device选项-e, --ending不要修改vendor-a, --another设置为一个同类型的MAC,同…

openwrt固定速率_固定速率与固定延迟– RxJava常见问题解答

openwrt固定速率如果您使用的是纯Java,从版本5开始,我们有一个方便的调度程序类,该类允许以固定速率或固定延迟运行任务: import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService;Schedu…

如何处理表单中的中文(中文编码/解码问题)

浏览器会如何对表单中的数据进行编码? 当表单采用 post 方式提交时&#xff0c;浏览器会按照打开该表单所在的页面的编码来对表单中的数据进行编码。 在 html 文件当中设置字符编码集&#xff08;即字符编码格式&#xff09; <meta http-equiv"content-type" …

linux 进城 管道丢数据,linux – 使用命名管道与bash – 数据丢失的问题

有人在线搜索,发现简单的“教程”使用命名管道.但是,当我做任何后台工作时,我似乎失去了大量的数据.[[编辑&#xff1a;找到一个更简单的解决方案,看到回复帖子.所以我提出的问题现在是学术性的 – 万一有人想要一个工作服务器]]使用Ubuntu 10.04与Linux 2.6.32-25-generic#45-…

wso2 安装_WSO2注册表安装简介

wso2 安装这篇文章基于有关注册表安装及其工作原理等常见问题。以下是人们提出的主要问题&#xff1a; 1&#xff09;。 安装如何工作&#xff1f; 2&#xff09;。 Config Registry和Governance Registry有什么区别&#xff1f; 3&#xff09;。 可以将H2以外的数据库用于本…

Servlet配置错误处理页面/配置错误页面

写一个错误处理页面 error.html <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <title>Insert title here</title> </head> <body style"font-size:30px;color:red;&quo…