Web开发学习HTTP协议、通过浏览器控制台学习HTTP协议。

文章目录

  • HTTP协议
    • 1.HTTP协议是什么?
    • 2.HTTP协议的特点
    • 3.什么是URL?
    • 4.通过浏览器控制台学习HTTP协议
      • Request Headers请求数据格式说明
      • Response Headers请求数据格式说明
    • 5.HTTP工作原理

HTTP协议

1.HTTP协议是什么?

HTTP协议是一种超文本传输协议,规定了浏览器和服务器之间的数据传输的规则(也可以说是浏览器与服务器之间进行数据交互的数据格式)

例如,浏览器需要向服务端发送请求来获取一些数据,因此浏览器携带请求数据先向服务器发送请求,服务器解析浏览器的请求数据后再给浏览器响应对应的数据,让浏览器解析。浏览器和服务器之间进行数据交互,需要按照约定的数据格式进行双方才能进行相应的数据解析。

HTTP概括如下:

  • HTTP协议是用于从服务器传输超文本到本地浏览器的传送协议。
  • HTTP基于TCP/IP通信协议进行传送数据(数据可以是HTML文件,图片,查询结果等)
  • HTTP是一个属于应用层的面向对象的协议。
  • HTTP协议工作于客户端-服务器架构之上。

2.HTTP协议的特点

  • HTTP支持B/S(浏览器与服务器架构模式)模式C/S(客户机与服务器架构)模式
  • 简单快速:客户端向服务器请求服务时,只需传送请求方法和路径即可。请求方法包括GET、POST、PUT、HEAD等。
  • 灵活性:HTTP允许传输任意类型的数据对象。
  • 面向连接:限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户的应答后,立即断开。可以节省传输时间。
  • 无状态:HTTP协议对于处理没有记忆能力,如果在处理过程中客户端与服务器端之间的连接断开,则数据必须重传。每次请求-响应都是独立的,速度会比较快但同时也导致多次请求间不能共享数据。
  • 基于请求-响应模型:一次请求对应一次响应

3.什么是URL?

HTTP使用**URI(统一资源标识符)**来传输数据和建立连接。

**URL是一种特殊类型的URI,包含了用于查找某个资源的足够信息。**它用于定位和识别互联网上的资源的地址。它是一个字符串,由多个部分组成,用于指定资源的位置和协议。

简单来说我们平时在浏览器中所看到的网址就是URL,在项目开发中我们需要指定文件,图片的位置也是URL。

以一个URL示例:https://www.example.com/index.html
一个URL主要包括以下几个部分

  • 协议部分:“https://”,指定使用的协议
  • 域名部分:指定了资源所在的服务器域名。
  • 路径部分:指定了服务器上资源的路径。

URL还可以包含其他部分,如查询参数、片段标识符等,用于进一步定位和描述资源。
例如本博客草稿的URL:https://i.cnblogs.com/posts/edit;postId=17878440

4.通过浏览器控制台学习HTTP协议

1.按下F12按键或者右建"检查",打开开发者工具

2.选择网络(Network)查看请求内容

3.点击这个请求,就可以看到相关的协议信息

部分浏览器是英文显示,显示的内容为:General(常规),Response Headers(响应标头),Request Headers(请求标头)

4.点击旁边的按钮“原始”,则会显示原始数据格式

可以看到,原始数据格式就是文本字符串,且这个文本字符串的格式是固定的

Request Headers请求数据格式说明

请求数据格式大致分为三个部分:请求行,请求头,请求体

1.请求行:即请求数据的第一行,由请求方式(GET或POST),资源路径,请求协议三部分组成。

  • GET请求方式:没有请求体,大小有限制
  • POST请求方式:有请求体,无大小限制

2.请求头:请求头为“key:value"的格式,即"请求头:请求头值"的形式。
请求头的值中会包含很多信息,包括浏览器版本,主机地址,数据格式等

常见的请求头的值

请求头名称请求头的值
Host请求的主机名
User-Agent浏览器版本
Accept表示浏览器能接收的资源类型
Accept-Language表示浏览器的偏好语言,服务器可以据此返回不同语言的网页
Accept-Encoding表示浏览器可以支持的压缩类型
Content-Type请求主体的数据类型
Content-Length请求主体的大小(单位:字节)

3.请求体:请求体是POST请求特有的一个组成部分,存放请求参数,请求数据

总结:Request请求数据格式内容框架如下:

Response Headers请求数据格式说明

响应数据格式大致分为三个部分:响应行,响应头,响应体

1.响应行:响应数据的第一行,包含协议,状态码,描述(可能省略)三个部分。

状态码的作用是告诉客户端本次响应的状态,常见状态码有

200,请求成功。

201,已创建,成功请求并创建了新的资源。

202,已接受,已接受请求,但未处理完成。

301,永久重定向,请求的资源被永久移到新URL,今后任何新的请求都应使用新的URL代替。

302,暂时重定向,资源只是临时被移动,客户端仍使用原有的URL。

400,客户端请求的语法错误,服务器无法理解。

401,请求要求用户的身份认证。(英文描述:OK)

403,服务器理解客户端的请求,但是拒绝执行的请求。

404,服务器无法根据客户端的请求找到资源。

500,服务器内部错误,无法完成请求。

501,服务器不支持请求的功能,无法完成请求。

503,由于超载或系统维护,服务器暂时无法处理客户端的请求。

所有状态码及其详细信息可访问网站: 状态码大全

状态码分为5类,范围从100~500,状态码分类如下

1**:信息,服务器收到请求,需要请求者继续执行操作

2**:成功,操作被成功接收并处理

3**:重定向,需要进一步的操作以完成请求

4**:客户端错误,请求包含语法错误或无法完成请求

5**:服务器错误,服务器在处理请求的过程中发生了错误

2.响应头:同请求头一样,数据格式为“key:value"的格式,即"响应头:响应头值"的形式。

常见的响应头

响应头响应头的值
Content-Type表示响应内容的类型,例如txt/html,application/json。
Content-Length表示该响应内容的长度(字节数)
Content-Encoding表示该响应压缩算法,例如gzip
Cache-Control指示客户端如何缓存,例如max-age=300表示最多缓存300秒
Set-Cookie告诉浏览器为当前页面所在的域设置Cookie

3.响应体:响应数据格式的最后一行,存放响应数据,通常为CJSON格式

5.HTTP工作原理

在浏览器地址键入URL,工作流程如下:

    1. 浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址
    1. 解析出IP地址后,根据该IP地址和默认端口号80,与服务器建立TCP连接
    1. 浏览器发出HTTP请求给服务器
  • 4.服务器对浏览器请求做出响应,并把对应的html文本发送给浏览器

    1. 释放TCP连接
    1. 浏览器将该html文本显示出来

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

合并PDF(将多个pdf文件整合成一个pdf文件)

推荐使用下面这个免费在线的PDF文件合并工具,简单且易操作。 合并PDF - 在线上免费合并PDF文件 (smallpdf.com) 还有其他功能,不过现在我尚未使用其他功能: 关于费用:

Python 云服务器应用,Https,定时重启

Python 云服务器应用,Https,定时重启 环境搭建Python模块模块导入生成Flask实例GET处理启动服务器打开网页验证 GET接入证书 支持https申请证书下载证书保留 xxx.crt 和 xxx.key文件就可以了 copy到python项目目录ssl_context 配置 宝塔面板操作在www目录下新建python工作目录在…

Python实现FA萤火虫优化算法优化LightGBM回归模型(LGBMRegressor算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …

【力扣】240.搜索二维矩阵

题目意思是从该矩阵之中查找出是否有和target一样的值,若有则返回true,无则返回false。这里我用的是java。总共有三种方法,分别是暴力解题法(能过),二分查找法(就是将二维数组拆分成m个二维数组…

NDIS协议驱动开发指南

文章目录 NDIS协议驱动开发指南1. 技术概览2. NDIS协议驱动2.1 BindAdapterHandlerEx2.2 SendNetBufferListsCompleteHandler2.3 ReceiveNetBufferListsHandler2.4 ProtocolNetPnpEvent 3. NET_BUFFER_LIST4. ndisprot实例5. 总结 NDIS协议驱动开发指南 我们知道,在…

三十八、AT模式

目录 一、定义 1、AT模式工作原理如下: 2、优点: 3、缺点: 4、流程: 二、AT模式与XA模式的区别 三、AT模式的脏写问题 四、实现AT模式 一、定义 AT模式是指使用AT命令进行串口通信的工作模式。AT命令是由两个字符组成的命…

Kubernetes(K8s)DashBoard的使用-11

DashBoard 之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实,为了提供更丰富的用户体验,kubernetes还开发了一个基于web的用户界面(Dashboard)。用户可以使用Dashboard部署容器化的应用,还可以…

redis应用-分布式锁

目录 什么是分布式锁 分布式锁的基本实现 引入过期时间 引入校验id 引入lua 引入看门狗 引入redlock算法 什么是分布式锁 在一个分布式系统中,也会涉及到多个节点访问同一个公共资源的情况,此时就需要通过锁来做互斥控制,避免出现类似于"线程安全"的问题. 而…

2023_Spark_实验二十七:Linux中Crontab(定时任务)命令详解及使用教程

Crontab介绍: Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ…

华为数通---配置ARP安全综合功能案例

简介 ARP(Address Resolution Protocol)安全是针对ARP攻击的一种安全特性,它通过一系列对ARP表项学习和ARP报文处理的限制、检查等措施来保证网络设备的安全性。ARP安全特性不仅能够防范针对ARP协议的攻击,还可以防范网段扫描攻击…

大数据可视化项目——基于Python豆瓣电影数据可视化分析系统的设计与实现

大数据可视化项目——基于Python豆瓣电影数据可视化分析系统的设计与实现 本项目旨在通过对豆瓣电影数据进行综合分析与可视化展示,构建一个基于Python的大数据可视化系统。通过数据爬取收集、清洗、分析豆瓣电影数据,我们提供了一个全面的电影信息平台…

Android Glide自定义AppCompatImageView切分成若干小格子,每个小格子onDraw绘制Bitmap,Kotlin(1)

Android Glide自定义AppCompatImageView切分成若干小格子,每个小格子onDraw绘制Bitmap,Kotlin(1) 垂直方向的RecyclerView,每行一个AppCompatImageView,每个AppCompatImageView被均匀切割成n个小格子&#…

[Geek Challenge 2023] web题解

文章目录 EzHttpunsignn00b_Uploadeasy_phpEzRceezpython EzHttp 按照提示POST传参 发现密码错误 F12找到hint,提示./robots.txt 访问一下,得到密码 然后就是http请求的基础知识 抓包修改 最后就是 我们直接添加请求头O2TAKUXX: GiveMeFlag 得到flag…

RabbitMQ创建新用户,并给用户添加角色和授权

一、进入容器 1.1 查看运行容器的详细信息 docker ps -a1.2 进入容器命令 docker exec -it 容器ID /bin/bash 或 docker exec -it 容器name bash 1.3 退出容器命令 exit 或者 CtrlQP 二、操作RabbitMQ 2.1 查看用户列表 注:先进入到容器内部 rabbitmqctl list_user…

云服务器与nas实现在冷热资源访问,nginx代理

在实际项目中,我们的文件存储是一个必不可少的环节,本博主了解到现在的存储方案有 购买纯系统的云服务器,自己安装个mino,再使用nginx代理给web使用购买OSS服务,现在有云厂商都有提供,储存价格也挺便宜的,…

[论文阅读]DETR

DETR End-to-End Object Detection with Transformers 使用 Transformer 进行端到端物体检测 论文网址:DETR 论文代码:DETR 简读论文 这篇论文提出了一个新的端到端目标检测模型DETR(Detection Transformer)。主要的贡献和创新点包括: 将目标检测视为一…

定时补偿方案

1:需求描述 支持NVR升级后通道数变更,完成升级后,设备SDK上报通道数量给A平台,A平台将NVR通道数量同步给B平台,B平台自动调用C平台接口,同步通道数量给C平台,C平台重新生成通道序列号&#xff…

U-boot(八):官方uboot移植

本文主要探讨从ubboot官方移植uboot到x210。 基础 确定设备的配置文件 通过board.cfg中的cpu型号(s5pc1xx)确定设备的配置文件 头文件:include/configs/s5p_goni.h cpu: u-boot-2013.10\arch\arm\cpu\armv7 board: u-boot-2013.10\b…

JVM 执行引擎篇

机器码、指令、汇编语言 机器码 各种用二进制编码方式表示的指令,叫做机器指令码。开始,人们就用它采编写程序,这就是机器语言。机器语言虽然能够被计算机理解和接受,但和人们的语言差别太大,不易被人们理解和记忆&a…

用23种设计模式打造一个cocos creator的游戏框架----(八)适配器模式

1、模式标准 模式名称:适配器模式 模式分类:结构型 模式意图:适配器模式的意图是将一个类的接口转换成客户端期望的另一个接口。适配器模式使原本接口不兼容的类可以一起工作。 结构图: 适用于: 系统需要使用现有的…