网络--应用层协议--HTTP

embedded/2024/11/8 20:31:41/

1、HTTP协议特性

1、HTTP协议(超文本传输协议):定义了客户端(如浏览器)与服务器之间的通信方式,以交换或传输超文本(超文本:视频、音频、文字等)

2、HTTP协议是客户端与服务器通信基础:客户端通过HTTP协议向服务器发送请求,服务器处理后返回响应。

3、HTTP协议是无连接、无状态的协议(每次请求,都要建立新的连接,不会保持旧连接-即无连接) ---> 因为HTTP底层协议是TCP,而TCP是要建立连接的,所以HTTP也是要建立连接的。

2、URL - Uniform Resource Locator(统一资源定位地址)

2.1、什么是URL

平时我们口中所说的网址,就是URL

http://user:pass@www.example.jp:80/dir/index.html?uid=1#ch1

 其中:

http:协议方案名(如https)

user:pass:登陆信息(认证)

www.example.jp:服务器地址(DNS技术,会自动将域名转换成IP地址)

80:服务器端口号

/dir/index.html:带层次的文件路径(一般index.html指该网页的首页)

uid=1:查询字符串参数

ch1=片段标识符

其中像/ ? # 这样的字符,已经被url当作特殊字符理解了(需要转义)

 为什么我们平时所见的网址没有这么详细呢?比如百度的首页网址:

https://www.baidu.con/index.html

 1、登陆信息(认证):不一定需要认证,并且登陆信息被浏览器记录即可。

2、为什么没有端口号呢:知名协议的端口号是强关联的,对于HTTP协议,服务器一旦启动,就是绑定80端口。所以可以忽略端口号。

3、第一个/:不一定是根目录,而是web根目录(即当前网页资源的根目录,不是系统根目录)。

4、后面的字符参数,不是每个页面都有,在特定需要输入信息(参数)的页面,才会出现。

2.2、再谈资源--URL中的资源路径

在HTTP这里,资源,统一可以认为是超文本资源。

在没有获取到资源前,这些资源都在服务器端。

我们通过HTTP协议,发起请求,服务器将资源放入响应中返回,我们便获取到资源。

而大部分服务器的底层都是Linux系统 -- Linux下,一切皆文件。

因此,获取资源,就是打开某个文件,获取文件数据。

想要打开文件,就得找到文件:

URL中:服务器地址(域名) +  默认端口 -> 确定唯一主机上的唯一进程。

带层次的资源路径:确定该主机上的唯一文件。

2.3、特殊字符转义--urlencode/urldecode

像/ ? 这样的特殊字符,已经被url当作特殊意义理解了,因此不能随意出现。

想要在参数中带有这些字符,就必须进行转义。

转义的规则如下:

将需要转义的字符转为16进制

从右到左,取4位(不足四位直接处理)

每2位做1位,前面加上%,编码成%XY的格式

例如:


http://www.ppmy.cn/embedded/135984.html

相关文章

Spring Boot整合RabbitMQ

这里只会演示部分常用的工作模式 1.工作队列模式 1.1引入相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><dependency><groupId>org.s…

什么是Mysql事务-特性-类型

什么是事务 事务&#xff08;Transaction&#xff09; 是并发控制的基本单位。 所谓的事务&#xff0c;它是一个操作序列&#xff0c;这些操作要么都 执行&#xff0c;要么都不执行&#xff0c;它是一个不可分割的工作单位。 事务是数据库维护数据一致性的单位&#xff0c;在每…

人保财险(外包)面试分享

前言&#xff1a; 这是本月面的第三家公司&#xff0c;太难了兄弟们&#xff0c;外包都不好找了&#xff0c;临近年底&#xff0c;金九银十已经错过了&#xff0c;金三银四虽然存在&#xff0c;但按照这几年的行情&#xff0c;金九银十和金三银四其实已经是不复存在了&#xf…

鸿蒙生态崛起:开发者的机遇与挑战

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题 点这里。 实战项目访问&#xff1a;http://javapub.net.cn/ 引言 作为一名技术博主&#xff0c;我对技术趋势始终保持着敏锐的洞察力。在数字化时代&#xff0c;操作系统作为智能设备的核心&#xff0c;其重要性不言而喻。随…

如何利用动态住宅IP突破亚马逊反爬虫验证码机制

在进行亚马逊等电商平台的网页爬虫开发时&#xff0c;开发者往往会遇到验证码拦截问题。验证码是一种常见的反爬机制&#xff0c;旨在阻止自动化爬虫获取数据。许多爬虫开发者在尝试抓取亚马逊数据时发现&#xff0c;频繁的访问会导致验证码的触发&#xff0c;进一步阻碍数据采…

mac 安装 nodemon

在 Mac 上安装 nodemon 有两种主要方法 全局安装 1. 前提条件 确保你已经安装了 Node.js 和 npm。你可以在终端中输入 node -v 和 npm -v 来检查是否已经安装以及查看它们的版本号。 2. 使用命令安装 打开终端&#xff0c;输入以下命令来全局安装 nodemon sudo npm insta…

Python http打印(http打印body)flask demo(http调试demo、http demo、http printer)

文章目录 代码解释 代码 # flask_http_printer.pyfrom flask import Flask, request, jsonify import jsonapp Flask(__name__)app.route(/printinfo, methods[POST]) def print_info():# 分隔符separator "-" * 60# 获取请求头headers request.headers# 获取 JS…

React前端框架

一、React概述 1. 什么是React&#xff1f; React是由Facebook开发并维护的一个用于构建用户界面的JavaScript库。它采用组件化开发模式&#xff0c;允许开发者将UI拆分为独立且可复用的组件。自2013年发布以来&#xff0c;React迅速成为了前端开发中最受欢迎的库之一。 2. …