Http协议在网站中的体现

文章目录

  • 1. Http协议简介
  • 2. 网站中的体现
    • 2.1 访问网站
    • 2.2 请求
    • 2.3 请求头
    • 2.4 请求方式
    • 2.5 响应
  • 3. 总结

1. Http协议简介

HTTP(超文本传输协议) 是一种广泛应用于互联网上的应用层协议,用于在Web浏览器和Web服务器之间传输数据。HTTP协议定义了客户端(通常是浏览器)与服务器之间的通信规则,使得浏览器能够请求网页资源,并将这些资源呈现给用户。

HTTP协议基于TCP/IP协议运行,遵循客户端-服务器模型。客户端发送请求,服务器处理请求并返回响应。HTTP协议是无状态的,这意味着每次请求都是独立的,服务器不会保存任何关于客户端状态的信息。这种无状态特性使得HTTP协议能够快速响应请求,但同时也限制了在多个请求之间共享数据的能力。

HTTP协议支持多种请求方法,其中最常用的有GET和POST。GET方法用于从服务器获取数据,而POST方法则用于向服务器发送数据,例如通过HTML表单提交数据。此外,HTTP还支持其他请求方法如PUT、DELETE、HEAD、OPTIONS、TRACE和CONNECT等。

HTTP协议的消息结构包括请求行、请求头、空行和请求正文,以及响应状态行、响应头、空行和响应正文。这些结构确保了请求和响应的格式统一,使得不同客户端和服务器能够正确解析和处理数据。

HTTP协议的发展经历了多个版本的迭代,从最初的HTTP/0.9到后来的HTTP/1.1,再到现在的HTTP/2,每个版本都引入了新的功能和技术改进,如多路复用、服务器推送和头信息压缩等。这些改进提高了HTTP协议的效率和性能。

在这里插入图片描述

2. 网站中的体现

2.1 访问网站

我们以tomcat为例子,启动tomcat,访问其中的图片
在这里插入图片描述
右击检查,点击网络
在这里插入图片描述
这里是请求的部分数据

2.2 请求

  1. 请求行(Request Line) :请求行是HTTP请求的第一行,包含三个主要部分:
    • 请求方法(Method) :指示所要执行的操作,如GET、POST、PUT、DELETE等。
    • 请求目标(Request URI) :通常是请求的URL或者资源的路径,例如/index.html。
    • HTTP版本(HTTP Version) :表示使用的HTTP协议版本,如HTTP/1.1或HTTP/2。
  2. 请求头(Request Headers) :请求头用于传递客户端向服务器发送的额外信息,帮助服务器理解请求的上下文和处理方式,键值对。常见的请求头包括:
    • User-Agent:客户端的标识信息,如浏览器类型和版本。
    • Content-Type:指定请求体的数据类型,如application/json、text/plain等。
    • Content-Length:请求体的长度。
    • Cookie:用于会话跟踪和身份验证的信息。
    • 空行(Blank Line) :用于分隔请求头和请求体,表示请求头结束。
  3. 请求体(Request Body) :请求体是可选部分,通常在POST请求中使用,包含实际要发送给服务器的数据。例如,在POST请求中,可以包含表单数据或其他格式的数据。

这些组成部分共同构成了一个完整的HTTP请求,使得客户端能够向服务器发送明确的请求,并获得相应的响应。不同的请求方法(如GET和POST)有不同的使用场景和数据传输方式。GET请求通常用于获取资源,而POST请求则用于提交数据或创建资源。

2.3 请求头

  1. Host
    客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号

  2. Connection
    连接方式。如果值是close则表示基于短连接方式,如果是keep-alive,网络连接就是持久的,在一定范围内是不会关闭的,使得对同一个服务器的请求可以继续在该连接上完成。

  3. Upgrade-Insecure-Requests
    服务端是否支持https加密协议

  4. Cache-Control
    指定请求和响应遵守的缓存机制

  5. User-Agent
    浏览器表明身份(是哪种浏览器)。例如Chrome浏览器:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36

  6. Accept
    告诉WEB服务器自己接受什么介质类型,*/*表示任何类型,type/*表示该类型下的所有子类型

  7. Accept-Encoding
    浏览器申明自己接受的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法

  8. Accept-Language
    浏览器申明自己接收的语言。语言跟字符集的区别:中文是语言,中文有很多字符集,比如gbk等

  9. Accept-Charset
    浏览器告诉服务器自己能接收的字符集

  10. Referer
    浏览器向WEB服务器表明自己是从哪个网页URL获得点击当前请求中的网址/URL

  11. Cookie
    可向服务端传递数据一种类型

  12. Refresh
    表示浏览器应该在多少时间之后刷新文档,以秒计时

在这里插入图片描述

2.4 请求方式

  1. GET请求:GET请求是最常用的HTTP请求方式之一,主要用于从服务器获取资源。其特点包括:

    • 安全性:GET请求不会对服务器上的资源进行修改,因此被认为是安全的。
    • 参数传递:GET请求的参数通常附加在URL后面,格式为 “key=value”。
    • 缓存:GET请求的响应可以被缓存,这有助于提高性能和减少服务器负载。
      历史记录:浏览器会保留GET请求的历史记录,这对于用户导航非常有用。
  2. POST请求:POST请求用于向服务器提交数据,通常会导致服务器端的状态发生变化。其特点包括:

    • 安全性:POST请求相对更安全,因为数据不会暴露在URL中。
    • 数据传输:POST请求的数据包含在请求体中,而不是URL中,因此可以传输更大的数据量。
    • 非幂等性:多次发送POST请求可能会导致不同的结果,因为每次请求都可能改变服务器的状态。
  3. PUT请求:PUT请求用于更新服务器上的资源。其特点包括:

    • 更新操作:PUT请求用于完全更新资源,会覆盖之前的数据。
    • 数据格式:PUT请求通常使用JSON或XML格式提交数据。
  4. DELETE请求:DELETE请求用于删除服务器上的资源。其特点包括:

    • 删除操作:DELETE请求用于删除指定的资源。
  5. 其他请求方式

    • OPTIONS:用于获取服务器支持的HTTP请求方法和其他选项信息,常用于跨域请求的预检。
    • HEAD:与GET类似,但只返回响应头,不返回响应体,常用于获取资源元数据。
    • TRACE:用于追踪请求-响应链路,服务器将请求原封不动地返回给客户端。
    • CONNECT:用于建立与服务器的隧道,常用于HTTPS等加密通信协议的代理。

2.5 响应

在HTTP协议中,响应是指服务器对客户端请求的回应。它包括三个主要部分:响应行、响应头和响应体

  • 响应行:包含HTTP版本、状态码和状态短语,例如“HTTP/1.1 200 OK”表示请求成功。
  • 响应头:提供关于响应的详细信息,如Content-Type(文档类型)、Server(服务器信息)、Set-Cookie(设置Cookie)等。
  • 响应体:包含实际的数据内容,如HTML代码或图片的二进制数据。

3. 总结

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

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

相关文章

JavaWeb——前端三剑客

前言:今天开始学习JavaWeb相关内容了,陆续会总结一些前后端分离开发的相关知识,有遗漏和错误的地方欢迎大家指出~ 目录 一、前端三剑客二、HTML2.1 HTML介绍2.2 常用标签 三、 CSS3.1 CSS介绍3.2 CSS引用的三种形式3.3. CSS选择器及其类型3.…

【经典】制造供应链四类策略(MTS、MTO、ATO、ETO)细说

关注作者 制造供应链的牛鞭问题与复杂问题主要是从两个方面解决,一是同步化供应链消减从需求到供应的放大效应,二是供应链细分,针对不同的客户、不同的需求供应的匹配策略来应对复杂性,更好的满足客户并以最低的总成本来实现。 对…

fixture装饰器

普通代码案例: python本身执行 import pytestdef init_new():print("init_new...")return Truedef test_case(init_new):if init_new is True:print("如果init_new返回True,就执行用例test_case")if __name__ __main__:#用python本…

数智读书笔记系列008 智人之上:从石器时代到AI时代的信息网络简史

书名:智人之上:从石器时代到AI时代的信息网络简史 作者:[以]尤瓦尔赫拉利 译者:林俊宏 出版时间:2024-09-01 ISBN:9787521768527 中信出版集团制作发行 作者信息 尤瓦尔・赫拉利 1976 年出生于以色列海法,是牛津大学历史学…

【C++】10___文件操作

目录 一、文本文件---写文件 二、文本文件---读文件 三、二进制文件---写文件 四、二进制文件---读文件 一、文本文件---写文件 通过文件操作可以将数据持久化 对文件操作需要包含头文件<fstream> 文件类型分两类&#xff1a; 文本文件&#xff1a;文件以文本的ASCII码形…

信号处理:概念、技术、领域

目录 基本概念 主要技术 应用领域 信号处理是一个涉及分析、修改和再生信号的多学科领域。信号可以是各种形式的&#xff0c;例如声音、图像、视频或其他类型的监测数据。信号处理的主要目标是提取有用的信息并增强信号的质量。以下是信号处理的一些基本概念和应用&#xff…

排序算法(5):归并排序

问题 排序 [30, 24, 5, 58, 18, 36, 12, 42, 39] 归并排序 归并排序采用分治法&#xff0c;将序列分成若干子序列&#xff0c;每个子序列有序后再合并成有序的完整序列。 在数组排序中&#xff0c;如果只有一个数&#xff0c;那么它本身就是有序的。如果有两个数&#xff0…

vue 自定义组件image 和 input

本章主要是介绍自定义的组件&#xff1a;WInput&#xff1a;这是一个验证码输入框&#xff0c;自动校验&#xff0c;输入完成回调等&#xff1b;WImage&#xff1a;这是一个图片展示组件&#xff0c;集成了缩放&#xff0c;移动等操作。 目录 一、安装 二、引入组件 三、使用…

基于Java的图书借阅管理系统详细设计和实现

目录 一、前言介绍&#xff1a; 二、主要技术&#xff1a; 2.1 Java技术介绍&#xff1a; 2.2 MYSQL数据库&#xff1a; 三、系统设计&#xff1a; 3.1 系统架构设计&#xff1a; 3.2 登录时序图设计&#xff1a; 四、功能截图&#xff1a; 4.1 用户登录注册 4.2 系统…

每天五分钟深度学习:解析m个样本向量化前向传播的原理

本文重点 上一节课程中,我们学会了多样本的前向传播的向量化形式,使用这种方式我们可以同时计算m个样本的前向传播,我们将m个样本以矩阵形式表示,实现了m个样本的向量化,本节课程我们再来看一下为什么使用上节课程的方式就可以完成m个样本的向量化。 x(1)、x(2)、x(3)在…

Android显示系统(10)- SurfaceFlinger内部结构

Android显示系统(01)- 架构分析 Android显示系统(02)- OpenGL ES - 概述 Android显示系统(03)- OpenGL ES - GLSurfaceView的使用 Android显示系统(04)- OpenGL ES - Shader绘制三角形 Android显示系统(05)- OpenGL ES - Shader绘制三角形(使用glsl文件) Android显…

软考高级架构 - 11.1- 信息物理系统CPS

信息物理系统CPS 信息物理系统(CPS)是控制系统、嵌入式系统的扩展与延伸。通过集成先进的感知、计算、通信、控制等信息技术和自动控制技&#xff0c;构建了物理空间与信息空间中人、机、物、环境、信息等要素相互映射、适时交互、高效协同的夏杂系统。 CPS的本质是基于…

数据可视化的Python实现

一、GDELT介绍 GDELT ( www.gdeltproject.org ) 每时每刻监控着每个国家的几乎每个角落的 100 多种语言的新闻媒体 -- 印刷的、广播的和web 形式的&#xff0c;识别人员、位置、组织、数量、主题、数据源、情绪、报价、图片和每秒都在推动全球社会的事件&#xff0c;GDELT 为全…

【GIS教程】使用GDAL-Python将tif转为COG并在ArcGIS Js前端加载-附完整代码

目录 一、数据格式 二、COG特点 三、使用GDAL生成COG格式的数据 四、使用ArcGIS Maps SDK for JavaScript加载COG格式数据 一、数据格式 COG&#xff08;Cloud optimized GeoTIFF&#xff09;是一种GeoTiff格式的数据。托管在 HTTP 文件服务器上&#xff0c;可以代替geose…

Git-分布式版本控制工具

目录 1. 概述 1. 1集中式版本控制工具 1.2分布式版本控制工具 2.Git 2.1 git 工作流程 1. 概述 在开发活动中&#xff0c;我们经常会遇到以下几个场景&#xff1a;备份、代码回滚、协同开发、追溯问题代码编写人和编写时间&#xff08;追责&#xff09;等。备份的话是为了…

【收藏】Cesium 限制相机倾斜角(pitch)滑动范围

1.效果 2.思路 在项目开发的时候&#xff0c;有一个需求是限制相机倾斜角&#xff0c;也就是鼠标中键调整视图俯角时&#xff0c;不能过大&#xff0c;一般 pitch 角度范围在 0 至 -90之间&#xff0c;-90刚好为正俯视。 在网上查阅了很多资料&#xff0c;发现并没有一个合适的…

YOLOv5-Backbone模块实现

YOLOv5-Backbone模块实现 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 电脑系统&#xff1a;Windows11 显卡型号&#xff1a;NVIDIA Quadro P620 语言环境&#xff1a;python 3.9.7 编译器&#xff1a…

Envoy 服务发现原理大揭秘与核心要点概述

1 Envoy动态配置介绍 动态资源&#xff0c;是指由envoy通过xDS协议发现所需要的各项配置的机制&#xff0c;相关的配置信息保存 于称之为管理服务器&#xff08;Management Server &#xff09;的主机上&#xff0c;经由xDS API向外暴露&#xff1b;下面是一个 纯动态资源的基…

黑盒白盒测试

任务1 黑盒测试之等价类划分法 【任务需求】 【问题】例&#xff1a;某报表处理系统要求用户输入处理报表的日期&#xff0c;日期限制在2003年1月至2008年12月&#xff0c;即系统只能对该段期间内的报表进行处理&#xff0c;如日期不在此范围内&#xff0c;则显示输入错误信息…

linux普通用户,配置python环境及oracle客户端

需求&#xff1a; 有一个python脚本&#xff0c;需要在linux普通用户下运行&#xff0c;脚本中需要连接oracle数据库查询数据 本地环境&#xff1a;centos7.6 Python版本&#xff1a;Python3.6 Oracle版本&#xff1a;12c 配置Python环境 选择对应Python版本进行下载 注意&am…