当前位置: 首页 > news >正文

Web开发核心

文章目录

  • 1.http协议简介
  • 2.http协议特性
  • 3.http请求和响应协议
  • 4.最简单的Web程序
  • 5.基于flask搭建web⽹站
  • 6.浏览器开发者⼯具(重点)

1.http协议简介

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于
万维网(WWW:Norld Wide Web)服务器与本地浏览器之间传输超文本的
传送协议。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速
的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使
用与发展,得到不断地完善和扩展。HTTP协议工作于客户端服务端架构为
上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有
请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
![[Pasted image 20240525200441.png]]

2.http协议特性

  1. 基于TCP/IP协议
    http协议是基于TCP/IP协议之上的应用层协议。
  2. 基于请求一响应模式
    HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定
    是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应
  3. 无状态保存
    HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响
    应之间的通信状态进行保存。也就是说在“TTP这个级谜别,协议对于发送过的请求或响
    应都不做持久化处理。
    使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保
    留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可
    伸缩性,而特意把HTTP协议设计成如此简单的。
  4. 短连接和长连接
    HTTP1.O默认使用的是短连接。浏览器和服务器每进行一次HTTP操作,就建立一次
    连接,任务结束就中断连接。
    HTTP/1.1起,默认使用长连接。要使用长连接,客户端和服务器的HTTP首部的
    Connection都要没置为keep-a]iye,才能支特长连接HTTP长连接,指的是复用TCP连接。多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。

3.http请求和响应协议

![[Pasted image 20240525200948.png]]

htp协议包含由浏览器发送数据到服务器需要遵循的请求协议与服务器发送数据到浏览器需要遵循的请求协议。用于HTTP协议交互的信被为HTTP报文。请求端(客户端)的HTTP报文做请求报文,响应端(服务器端)的做响应报文。HTTP报文本身是由多行数据构成的字文本。
![[Pasted image 20240525201022.png]]

一个完整的URL包括:协议、ip、端口、路径、参数
例如:https:/www.baidu.com/s?wd=yuan
其中https是协议,www,baidu.com是IP,端口默认80,/s是路径,参数是wd=yuan请求方式:get与post请求GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之
间以&相连,如EditBook?name=test1&id=123456.P0ST方法是把提交
的数据放在HTTP包的请求体中
GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制
响应状态码:状态码的职是当客户端向服务器端发送请求时,返回的请求结果。借助状态码,用户可以知道服务器端是正常理了请求,还是出现了。状态码如2000K,以3位数字和原因组成。

4.最简单的Web程序

import socket  sock = socket.socket()  
sock.bind(("127.0.0.1", 7777))  
sock.listen(3)  print("服务器已启动..")  
while True:  conn, addr = sock.accept()  data = conn.recv(1024)  print("收到请求:", data.decode())  response = """HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n  <h1>Hello, World!</h1>    <img src='https://img0.baidu.com/it/u=4011424408,4733765&fm=253&fmt=auto&app=138&f=JPEG?W=500&h=750'>"""  conn.sendall(response.encode())  conn.close()

5.基于flask搭建web⽹站

from flask import Flask, render_template  
import datetime  app = Flask(__name__, template_folder="templates")  @app.route("/index")  
def index():  return render_template("index.html")  @app.route("/timer")  
def timer():  now = datetime.datetime.now().strftime("%Y-%m-%d %X")  return render_template("timer.html", now=now)  app.run()

6.浏览器开发者⼯具(重点)

(1)Elements
(2)Network
(3)Application

http://www.lryc.cn/news/352853.html

相关文章:

  • 【Python】【Scrapy 爬虫】理解HTML和XPath
  • 【CTF Web】CTFShow web5 Writeup(SQL注入+PHP+位运算)
  • LeetCode 968.监控二叉树 (hard)
  • 数理逻辑:1、预备知识
  • 14-云原生监控体系-Redis_exporter 监控 MySQL[部署Dashborad告警规则实战]
  • DOS学习-目录与文件应用操作经典案例-xcopy
  • Midjourney是一个基于GPT-3.5系列接口开发的免费AI机器人
  • v-model详解
  • ArcGIS中分割与按属性分割的区别
  • 就业班 第三阶段(ELK) 2401--5.20 day1 ELK 企业实战 ES+head+kibana+logstash部署(最大集群)
  • PCM和QAM
  • Mongodb分布式id
  • AI模型抉择:开源VS闭源,谁主沉浮?
  • 佩戴安全头盔监测识别摄像机
  • 5.24学习记录
  • 创建FreeRTOS工程
  • HTML中 video标签样式铺满全屏
  • vue项目移动端商场
  • Golang | Leetcode Golang题解之第97题交错字符串
  • 2024电工杯B题:大学生平衡膳食食谱的优化设计及评价
  • 齐护K210系列教程(三十二)_在线模型训练
  • 碌时刻必备!微信自动回复让你告别消息堆积
  • 【ARM 裸机】按键输入
  • 站在ESG“20+”新起点上,看中国ESG先锋探索力量
  • 【CTF Web】CTFShow web4 Writeup(SQL注入+PHP+字符型注入)
  • 软件设计师备考 | 案例专题之数据库设计 概念与例题
  • 【全网最全】2024电工杯数学建模A题成品论文+前三题完整解答matlab+py代码等(后续会更新成品论文)
  • 基于.net开发的博客系统
  • python给图片加上图片水印
  • Redis实现MQ