人工智能-http协议和静态服务器

news2024/11/30 10:38:08

目录

    • 1、HTTP协议
      • 1.1 网址
      • 1.2 http协议的介绍
      • 1.3 http请求报文
      • 1.4 http响应报文
      • 1.5查看http协议的通信过程
    • 2、静态web服务器程序开发
      • 2.1 搭建python自带的静态web服务器
      • 2.2 静态web服务器-返回固定页面数据

1、HTTP协议

1.1 网址

网站又称为URL(统一资源定位符:通过网址就能找到资源),即网络资源地址
协议:双方都要遵守的某种协议
在这里插入图片描述
组成部分:协议部分,域名部分,资源路径部分,查询参数部分

1.2 http协议的介绍

web服务器:给浏览器提取资源的服务器
在这里插入图片描述
通过HTTP协议来规定浏览器和web服务器之间通讯的数据格式
HTTP协议:超文本传输协议
超文本是指在文本数据的基础上还包括非文本数据,非文本数据会使用链接的方式进行加载,所以超文本即带有链接的文本数据,即网页数据

传输HTTP协议格式的数据是基于TCP传输协议的,发送数据之前需要先建立链接。
TCP传输协议是用来保证网络中传输的数据安全性,HTTP协议是用来规定这些数据的具体格式的

HTTP协议规定的数据格式是浏览器和web服务器通信数据的格式,即浏览器和web服务器通信需要使用HTTP协议
在这里插入图片描述

1.3 http请求报文

两种方式:
GET方式的请求报文(获取web服务器数据)
POSE方式的请求报文(向web服务器提交数据)

GET方式:
请求行
请求头
空行

POST方式:
请求行
请求头
空行
请求体

一个HTTP请求报文可以由请求行、请求头、空行、请求体4个部分组成
请求行由三部分组成:请求方式、请求资源路径、HTTP协议版本
GET方式的请求报文没有请求体,只有请求行、请求头、空行组成
POST方式的请求报文有请求行、请求头、空行、请求体组成。可以允许没有请求体

1.4 http响应报文

响应行
响应头
空行
响应体

状态码:
在这里插入图片描述
一个HTTP响应报文由响应行、响应头、空行、响应体组成
响应行是由三部分组成:HTTP协议版本、状态码、状态描述,最常见的状态码是200

1.5查看http协议的通信过程

在网页上右击选择检查
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、静态web服务器程序开发

2.1 搭建python自带的静态web服务器

百度--静态服务器
新闻--动态服务器

静态web服务器是为发出请求的浏览器提供静态文档的程序,搭建python自带的静态web服务器使用 python3-m http.server端口号这个命令,端口号不指定默认是8000
在这里插入图片描述

2.2 静态web服务器-返回固定页面数据

开发自己的静态web服务器:
在这里插入图片描述

import socket
if __name__ =='__main__':
	#1,编写一个TCP服务器程序
	#创建socket
	tcp_server_socekt = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
	#绑定地址
	tcp_server_socket.bind(("",8080))
	#设置监听
	tcp_server_socekt.listen(128)
	while True:
		#2,获取浏览器发送的HTTP请求报文数据
		#建立连接
		client_socekt,client_adddr = tcp_server_socekt.accept()
		#获取浏览器的请求信息
		client_request_Data = client_socekt.recv(1024).decode()
		print(client_request_Data)
		#3,读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器
		with open('./index.html','rb') as f:
			file_data = f.read()
		#应答行
		response_line = 'HTTP/1.1 200 ok\r\n'
		#应答头
		response_header = 'Server:pwb\r\n'
		#应答体
		response_body = file_data
		
		#4,HTTP响应报文数据发送完成后,关闭服务于客户端的套接字
		conn_socket.close()

在这里插入图片描述

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

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

相关文章

【报错】assert failed: xQueueSemaphoreTake queue.c:1545 (( pxQueue ))

🌱 hi,最近开始写嵌入式,碰到蛮多新的问题,也调bug到凌晨五点过。欢迎关注我,一起讨论交流 开发环境 在VScode中使用Arduino,开发板ESP32S3 报错代码 使用队列接收服务器消息,FIFO依次处理消…

ROS1学习笔记:参数的使用与编程方法(ubuntu20.04)

参考B站古月居ROS入门21讲: 参数的使用与编程方法 基于VMware Ubuntu 20.04 Noetic版本的环境 文章目录一、概念图讲解二、创建功能包三、参数命令行的使用方法:rosparam显示某个参数值:rosparam get设定某个参数值:rosparam set将…

linux小程序—进度条(动态演示)

文章目录1. \n与\r的区别1. linux环境下2. windows环境下2. 缓冲区问题1.\n的情况2.\r的情况3. \n与\r的情况对比4. 使用fflush函数观察\r情况5. 不为\n与\r的情况3.进度条的实现1. printf 打印字符问题1. 修改前2.修改后2 . 注意事项3. 整体实现1. makefile(自动化编译工具&am…

一篇文章教会你Linux下《常用操作指令》

基本指令首言ls(查看目录)pwds(显示用户当前所在目录)cd(改变工作目录)mkdir(创建目录)rmdir(删除目录)touch (新建文件或更新文件时间&#xff0…

【Python】获取视频弹幕并生成词云

目录一、摘要二、获取目标视频cid三、获取视频弹幕xml文件四、处理弹幕文件五、生成词云六、完整参考代码一、摘要 就是那个大家都用的弹幕视频网站,不写名字了,写了老是不能通过。 获取视频的弹幕文件(xml),并生成如图…

认真分享一个让我变厉害的小建议

很多朋友,加我好友之后,第一句话通常是:我想提高英语,有什么资料推荐? 这要看你学英语的目的了。 我们学英语是为了什么? 理由可能很多,我就说个最俗的目的吧,为了发财。 想发财应向谁学习&…

代码随想录第31天|● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

455.分发饼干 大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的。 这里的局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。 可以尝试使用贪心策略&#xf…

[ 数据结构 ] 最小生成树(MST)--------普里姆算法、克鲁斯卡尔算法

0 修路问题 有胜利乡有 7 个村庄(A, B, C, D, E, F, G) ,现在需要修路把 7 个村庄连通各个村庄的距离用边线表示(权) ,比如 A – B 距离 5 公里问:如何修路保证各个村庄都能连通,并且总的修建公路总里程最短? 思路: 将 10 条边&a…

Java常用工具类方法(上)

1. Collections首先出场的是java.util包下的Collections类&#xff0c;该类主要用于操作集合或者返回集合&#xff0c;我个人非常喜欢用它。1.1 排序在工作中经常有对集合排序的需求。看看使用Collections工具是如何实现升序和降序的&#xff1a;List<Integer> list new…

揭秘链动2+1商业模式玩法

链动21模式主要是打造裂变团队的同时又能快速地将平台销售额提升起来&#xff0c;链动模式可以说颠覆传统的分销&#xff0c;算是一个创新更能吸引用户&#xff0c;稳住会员&#xff0c;拓展新客户的商业模式。 链动21模式有两个身份&#xff0c;分别是代理和老板 【代理商】…

Java高手速成 | 高质量代码编写最佳实践

程序员之间交流时&#xff0c;会经常使用非程序员无法理解的行话&#xff0c;或者使用令操不同编程语言的程序员理解起来比较模糊的行话。 但是&#xff0c;那些操相同编程语言的程序员理解起来不会产生什么问题。 这有时也取决于程序员所掌握知识的渊博程度。 一个新手或许不理…

以 Animated Drawings APP 为例,用 TorchServe 进行模型调优

内容导读 上节介绍了 TorchServe 模型部署调优的 5 个步骤&#xff0c;将模型部署到生产环境中。本节以 Animated Drawings APP 为例&#xff0c;实际演示 TorchServe 的模型优化效果。 本文首发自微信公众号&#xff1a;PyTorch 开发者社区 去年&#xff0c;Meta 凭借 Animate…

win系统重装系统后提示 BitLocker(磁盘加密)密钥查找及如何关闭

文章目录前言如何找到恢复秘钥&#xff0c;解锁磁盘1、打开链接&#xff1a;[https://support.microsoft.com/zh-cn/help/4026181/windows-10-find-my-bitlocker-recovery-key](https://support.microsoft.com/zh-cn/help/4026181/windows-10-find-my-bitlocker-recovery-key)2…

Nuxt3+ElementPlus构建打包部署手记

文章目录为何选Nuxt.js?工程package.json参考目录结构页面之间的关系几个主要命令动态组件获取后台数据SSR打包方式部署参考文档为何选Nuxt.js? 在前后端分离出现之前&#xff0c;传统的web页面都是服务端渲染的&#xff0c;如JSP、PHP、Python Django&#xff0c;还有各种模…

06【Filter】

文章目录06【Filter】一、过滤器简介1.1 Filter概述1.2 Filter的使用1.2.1 Filter快速体验1.2.2 XML配置Filter1.2.3 Filter的拦截规则1.3 Filter的生命周期1.3.1 Filter生命周期介绍1.3.2 Filter生命周期相关方法1.3.3 FilterConfig类1.4 Filter的拦截方式1.4.1 REQUEST1.4.2 …

Linux系统编程——管道

文章目录一、管道1.管道的特质2.管道的用法——pipe函数3.管道的读写行为4..管道的优劣二.实战练习&#xff1a;实现ls | wc -l 指令三、fifo实现非血缘关系进程间通信一、管道 1.管道的特质 实现原理: 内核借助环形队列机制&#xff0c;使用内核缓冲区实现。 特质: 1.伪文件…

接口测试 Mock 实战(二) | 结合 jq 完成批量化的手工 Mock

一、应用背景因为本章的内容是使用jq工具配合完成&#xff0c;因此在开始部分会先花一定的篇幅介绍jq机器使用&#xff0c;如果读者已经熟悉jq&#xff0c;可以直接跳过这部分。先来看应用场景&#xff0c;App 经常会有一些信息展示的列表页&#xff0c;比如商家的菜品、股票的…

真无线蓝牙耳机怎么选?分体式蓝牙耳机选购攻略及推荐

近年来&#xff0c;随着智能手机终端市场的崛起&#xff0c;无线蓝牙耳机的产销也随之呈持续增长的态势。真无线蓝牙耳机凭借其时尚、便捷性&#xff0c;迅速成为年轻人出门必备的数码单品之一。蓝牙耳机经过多年发展&#xff0c;其产品种类、品牌型号数不胜数。导致&#xff0…

springboot监听器的使用(ApplicationListener、SmartApplicationListener、@EventListener)

目录前言1. ApplicationListener1. 简单的全局监听2. 定时任务3. 监听自定义事件2. SmartApplicationListener1. 简单使用2. 方法介绍3. EventListener前言 监听器&#xff1a; 当某个事件触发的时候&#xff0c;就会执行的方法块。 springboot提供了两个接口来实现监听&…

Paddle进阶实战系列(一):保险文本视觉认知问答

保险文本视觉认知问答 1.项目介绍 1.1背景 随着人工智能技术的逐渐成熟&#xff0c;计算机视觉、语音、自然语言处理等技术在金融行业的应用从广度和深度上都在加速&#xff0c;这不仅降低了金融机构的运营和风险成本&#xff0c;而且有助于提升客户的满意度&#xff0c;比如…