JavaWeb——Web入门(3/9)-HTTP协议:概述(概念、特点,HTTP协议定义,基于 TCP 协议,基于请求-响应模型)

news2024/12/24 8:35:00

目录

概念

特点

内容预告


概念

  • HTTP 协议定义:全称 Hyper Text Transfer Protocol,即超文本传输协议,规定了浏览器与服务器之间数据传输的规则,具体指客户端浏览器与服务器之间进行数据交互的数据格式。

        在互联网的世界中,HTTP 就像是一座桥梁,连接着用户的浏览器和服务器。当我们在浏览器中输入一个网址,按下回车键后,浏览器就会通过 HTTP 协议向服务器发送请求,服务器接收到请求后,会根据请求的内容进行处理,并通过 HTTP 协议将响应数据返回给浏览器。

        例如,当我们在浏览器中访问一个新闻网站时,浏览器会向服务器发送一个请求,请求中包含了我们要访问的页面的地址。服务器接收到请求后,会根据地址找到相应的页面内容,并将其封装成 HTTP 响应数据返回给浏览器。浏览器接收到响应数据后,会对其进行解析,并将页面内容展示给用户。

  • 数据传输格式:主要包括请求数据的格式和响应数据的格式,浏览器和服务器需按照固定格式进行数据传输和解析,以明确双方意图。

        这种固定的数据传输格式就像是一种约定俗成的语言,让浏览器和服务器能够顺利地进行交流。如果没有这种固定的格式,浏览器发送的请求可能会让服务器无法理解,服务器返回的响应也可能会让浏览器无法解析。

        例如,当我们在浏览器中输入一个网址并按下回车键后,浏览器会按照 HTTP 请求数据的格式,将请求信息封装成一个特定格式的文本字符串,并发送给服务器。服务器接收到这个文本字符串后,会按照 HTTP 协议规定的格式进行解析,了解浏览器的请求意图。然后,服务器会根据请求的内容进行处理,并将响应数据按照 HTTP 响应数据的格式封装成又一个特定格式的文本字符串,返回给浏览器。浏览器接收到这个文本字符串后,也会按照 HTTP 协议规定的格式进行解析,展示服务器返回的内容。

特点

  1. 基于 TCP 协议:TCP 是面向连接的安全协议,每次请求前需进行三次握手,确保双方有收发能力后再传输数据,不易丢包更安全
    • TCP 协议的三次握手过程就像是两个人在打电话之前的确认过程。首先,浏览器向服务器发送一个连接请求,就像一个人拨打对方的电话。服务器接收到这个请求后,会向浏览器发送一个确认信息,就像对方接听电话并回应。最后,浏览器再向服务器发送一个确认信息,就像通话双方确认可以开始交流。通过这个三次握手过程,浏览器和服务器可以确保双方都能够正常收发数据,从而保证数据传输的可靠性。
    • 由于 TCP 协议的可靠性,HTTP 协议在传输数据时也更加安全。不容易出现数据丢失的情况,确保用户能够顺利地获取到所需的信息。
  2. 基于请求-响应模型一次请求对应一次响应,无请求则无响应。
    • 这种请求响应模型就像我们在商店购物时的场景。我们向售货员提出请求(比如要买某个商品),售货员会根据我们的请求进行响应(比如拿出我们要的商品并告诉我们价格)。如果我们不提出请求,售货员也不会主动给我们提供商品或服务。
    • 在 HTTP 协议中,浏览器向服务器发送请求,服务器根据请求的内容进行处理,并返回相应的响应数据。如果浏览器不发送请求,服务器也不会主动向浏览器发送数据。
  3. 无状态协议每一次请求-响应都是独立的,后一次请求不会记录前一次请求数据,速度较快但多次请求之间不能进行数据共享,导致很多功能无法实现。
    • HTTP 协议的无状态性使得每次请求都是独立的,服务器不会记住之前的请求和响应。这就像我们在不同的商店购物,每次购物都是独立的,商店不会记住我们之前的购物记录。
    • 这种无状态性的优点是速度较快,因为服务器不需要记住大量的状态信息,可以更快地处理请求。这也带来了一些缺点,比如在一些需要多次请求之间进行数据共享的场景下,就会出现问题。
    • 例如,在一个购物网站中,如果用户在登录后将商品加入购物车,然后再进行其他操作时,服务器由于无状态性,无法记住用户已经登录的状态和购物车中的商品信息。这就需要通过其他技术手段来解决这个问题,比如使用 Cookie 和 Session 等技术来实现状态的保持。

内容预告

接下来的学习路线:

  • HTTP-请求协议
  • HTTP-响应协议
  • HTTP-协议解析

HTTP 协议中最重要的两块内容,即请求数据的格式和响应数据的格式。后面会先讲解请求数据的格式。


END


学习自:黑马程序员——JavaWeb课程

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

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

相关文章

Altium Designer使用技巧(二)

一、创建类 1、按DC键,打开对象类。 2、右键添加一个类。命名为PWR。 3、将所有的电源类,全部添加到新创建的类中,从非成员类中点选到成员类中。 4、右下角点panes ,点PCB。 5、然后在左边单击PWR,点连接,可显示或…

边缘计算【智能+安全检测】系列教程--agx orin解决RTC时间问题

因为是离线运行,首要问题是时间不准确,就在主板上加装了纽扣电池,但是会有一系列问题,比如无法将RTC时间回写到系统时间,或者无法将系统时间写到RTC中等等一些列问题。为解决这些问题,一劳永逸的方式&#…

React中常用的hook函数(二)——useReducer和useContext

React中常用的hook函数(一)——useState和useEffect_usestate useeffect-CSDN博客https://blog.csdn.net/Mrs_Lupin/article/details/142905749?sharetypeblogdetail&sharerId142905749&sharereferPC&sharesourceMrs_Lupin&spm1011.2480.3001.8118React中常用…

Java项目实战II基于Java+Spring Boot+MySQL的智能推荐的卫生健康系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 基于Java、…

《Linux系统编程篇》消息队列(Linux 进程间通信(IPC))——基础篇

文章目录 引言消息队列(Message Queue)消息队列的特点消息队列的特性消息队列的操作ipcs -q 拓展ipcrm 拓展注意事项 结论 “山重水复疑无路,柳暗花明又一村。” ——陆游 引言 《Linux系统编程篇》——基础篇首页传送门 想象一下&#xff0…

微服务设计模式 - 重试模式(Retry Pattern)

微服务设计模式 - 重试模式(Retry Pattern) 定义 重试模式(Retry Pattern)是一种微服务中的设计模式,用于在临时性失败(如网络故障或暂时不可用的服务)发生时,自动重新尝试请求&…

『 Linux 』网络传输层 - TCP(二)

文章目录 TCP六个标志位TCP的连接三次握手 四次挥手为什么是三次握手和四次挥手 重传机制 TCP六个标志位 在TCP协议报文的报头中存在一个用于标志TCP报文类型的标志位(不考虑保留标志位),这些标志位以比特位选项的方式存在,即对应标志位为0则表示为假,对应标志位为1则为真; SYN…

VLAN虚拟局域网,eNSP实验讲解

VLAN虚拟局域网,eNSP实验讲解 一、概念二、eNSP仿真实验1、实验一:vlan演示(交换机端口access模式)2、实验二:vlan演示(交换机端口trunk模式) 一、概念 VLAN(Virtual Local Area Ne…

Ubuntu UFW防火墙规则与命令示例大全

在服务器安全领域,防火墙是守护网络安全的坚实盾牌。UFW(Uncomplicated Firewall),即“不复杂的防火墙”,是一个运行在iptables之上的防火墙配置工具,它为Ubuntu系统默认提供了一个简洁的命令行界面&#x…

基于 Python 的 Django 框架开发的电影推荐系统

项目简介:本项目是基于 Python 的 Django 框架开发的电影推荐系统,主要功能包括: 电影信息爬取:获取并更新电影数据。数据展示:提供电影数据的列表展示。推荐系统:基于协同过滤算法实现个性化推荐。用户系…

ORB-SLAM2源码学习:ORBextractor.cc:IC_Angle 利用灰度质心法求解关键点方向角

ORB特征点: 特征点是由关键点和描述子两部分组成,关键点是指特征点在图像中的位置,描述子是用来描述关键点周围的像素信息。ORB关键点是在FAST关键点的基础上进行改进给像素增加了一个主方向,称为Oriented FAST。描述子在BRIEF的…

【设计模式】如何用C++实现依赖倒置

【设计模式】如何用C实现依赖倒置 一、什么是依赖倒置? 依赖倒置原则(Dependency Inversion Principle,DIP)是SOLID面向对象设计原则中的一项。它的核心思想是: 高层模块不应该依赖于低层模块,两者都应该…

‌植物神经紊乱患者,这些锻炼适合你!

植物神经紊乱是一种常见的心理疾病,其主要症状包括焦虑、抑郁、失眠等,严重时还可能出现心慌、气短、憋气、出汗异常等症状。然而,通过适量的锻炼,我们可以帮助调节自主神经系统,缓解这些症状。那么,植物神…

Golang | Leetcode Golang题解之第525题连续数组

题目: 题解: func findMaxLength(nums []int) (maxLength int) {mp : map[int]int{0: -1}counter : 0for i, num : range nums {if num 1 {counter} else {counter--}if prevIndex, has : mp[counter]; has {maxLength max(maxLength, i-prevIndex)} …

第十七届山东省职业院校技能大赛通知分享

近日,山东省教育厅联合相关部门发布了关于举办第十七届山东省职业院校技能大赛的通知,标志着这一旨在深化教育教学改革、推进产教融合与校企合作的重要赛事即将拉开帷幕。 据了解,本次大赛将设中等职业教育组和高等职业教育组,共包…

Angular实现gridview效果

说明&#xff1a;使用angular实现grid效果&#xff0c;支持文字图片多条数据展示 效果图: step1: <mat-grid-list cols"2" rowHeight"2:1"><mat-grid-tile *ngFor"let course of courses">{{ course }}</mat-grid-tile> &l…

web of sicence使用教程(研究生版)

学习视频链接 进入web of science 通过校园资料库进入进入&#xff0c;选择如下 核心检索规则 不区分字母大小写逻辑运算符 可以通过括号改变优先级 常用通配符 短语检索 检索界面 检索类型 选择数据库

2-8软件包管理

8.1 配置仓库 1.配置本地仓库 #进行代码安装前需要先进行仓库配置和挂载 [rootlocalhost ~]# cd /etc/yum.repos.d [rootlocalhost yum.repos.d]# vim base.repo [baseos] namebaseos baseurl/mnt/BaseOS gpgcheck0 [appstream] nameappstream baseurl/mnt/AppStream gp…

适配器模式:类适配器与对象适配器

适配器模式是一种结构性设计模式&#xff0c;旨在将一个接口转换成客户端所期望的另一种接口。它通常用于解决由于接口不兼容而导致的类之间的通信问题。适配器模式主要有两种实现方式&#xff1a;类适配器和对象适配器。下面&#xff0c;我们将详细探讨这两种方式的优缺点及适…

性能测试:性能测试流程与方法

性能测试流程是指在进行性能测试时所遵循的一系列步骤和阶段&#xff0c;以确保对系统的全面测试和评估。性能测试流程的具体步骤可能会因组织、项目和测试需求而有所不同。 性能测试流程 分析现状&#xff1a;首先需要对应用程序或系统进行详细的分析&#xff0c;了解其当前的…