首页 > 其他分享 >前端三剑客之html

前端三剑客之html

时间:2023-07-17 15:35:52浏览次数:31  
标签:协议 HTTP 请求 GET 前端 html 服务器 连接 三剑客

一、http协议

1、http 超文本传输协议

  HTTP(Hypertext Transfer Protocol)是一种用于在Web上传输数据的协议,规定了服务端和客户端之间的数据传输格式及其标准。

HTTP协议是一种应用层协议,它是基于TCP/IP协议开发的。HTTP在TCP之上,而TCP在IP之上,形成了一个层次化的协议栈,这种组合允许HTTP协议通过互联网进行通信。HTTP协议负责定义客户端和服务器之间请求和响应的格式和规则,而TCP和IP协议负责确保

数据包的可靠传输和路由。

2、http协议的五大特性

请求-响应模型(Request-Response)

  HTTP协议采用客户端-服务器模型,客户端发送请求到服务器,服务器处理请求并返回响应给客户端。

短连接(Connectionless)

  HTTP协议是一种无连接的协议,即每个请求和响应都是独立的,服务器在完成客户端请求的响应后,立即断开连接。这样的特性使得服务器能够处理大量的请求,而不需要长时间保持连接状态,从而节省服务器资源。

无状态(Stateless)

  HTTP协议是无状态的,即服务器不会保存之前请求的任何信息。每个请求都是独立的,服务器不能识别请求是否来自同一个客户端或之前的请求历史。这使得服务器设计简单,并且能够更好地扩展,但同时也要求在需要保持状态的应用场景下使用额外的机制,如Cookie或Session。

支持多媒体(Media-independent)

  HTTP协议不仅仅支持传输HTML文本,还可以传输各种类型的数据,包括图片、音频、视频、文件等。这使得HTTP成为一个通用的应用层协议,可以用于传输各种不同类型的数据。

长连接( Keep-Alive)连接

  1. 减少连接建立和断开的开销:TCP连接的建立和断开会消耗一定的时间和资源,通过使用长连接,可以减少这些开销,从而提高性能和响应速度。

  2. 减少服务器负担:长连接使得服务器可以处理多个请求,而不必为每个请求建立新的连接。这在高并发的情况下特别有用,可以减轻服务器的负担。

  3. 并行传输:由于长连接可以在同一时间内传输多个请求和响应,客户端可以并行发送多个请求,而不必等待每个请求的响应。这有助于提高页面加载速度和资源获取效率。

虽然长连接可以提供更高的性能和效率,但它也需要服务器维护打开的连接,并在适当的时候关闭空闲连接,以防止资源浪费和连接过多导致的问题。为了解决长连接中的潜在问题,HTTP/1.1引入了"Connection: keep-alive"头部来明确指示使用长连接。在HTTP/1.1中,默认情况下,连接都是持久的,除非显式地指定"Connection: close"头部,以关闭连接。

值得注意的是,HTTP/2及更高版本使用了全新的多路复用技术,不再依赖于长连接来实现并行传输,因此在HTTP/2中,长连接的意义不同于HTTP/1.1时代。

3、http 协议的请求数据格式

常用的版本号就是http1.X版本,新版本应该是http2.x
请求首行(请求方式、协议/版本号)
请求头
\r\n
请求体(不是什么请求方式都有的,GET请求方式没有)

<Method> <Request-URI> <HTTP-Version>
<Headers>

<Optional Request Body>

4、HTTP协议的响应数据格式
响应首行(响应状态码)
响应头
\r\n
响应体

<HTTP-Version> <Status-Code> <Reason-Phrase>
<Headers>

<Optional Response Body>

5、请求方式(重要)

GET 

  用于请求获取指定资源的数据

协议:// 域名/后缀/?参数
协议:// 域名/后缀/?k=v&k1=v1&k2=v2...

POST

  用于向服务器提交数据,通常用于创建新的资源。例如百度的登录功能,把用户名和密码提交到百度的后端做验证.用的就是POST请求

PUT

用于向服务器更新或替换指定资源的数据。PUT请求是幂等的,多次请求同一个URL应该产生相同的结果。

DELETE

用于请求服务器删除指定资源。DELETE请求是幂等的,多次请求同一个URL应该产生相同的结果。

PATCH

用于对资源进行部分更新,只传输需要修改的部分。PATCH请求是非幂等的。

HEAD

类似于GET请求,但服务器只返回响应头部信息,不返回实际数据。主要用于获取资源的元数据,比如资源是否存在、最后修改时间等。

OPTIONS

用于获取目标资源支持的请求方法和其他选项信息。

TRACE

用于追踪请求-响应的传输路径,主要用于调试和测试。

CONNECT

用于建立与代理服务器的隧道连接,通常用于代理服务器的身份验证。

6、get请求和post请求的区别

  1. 参数传递位置:

    • GET请求:参数是通过URL的查询字符串传递的,在URL中以键值对的形式出现,例如:http://www.example.com/page?param1=value1&param2=value2
    • POST请求:参数是通过请求体(Request Body)传递的,参数不会直接显示在URL中。
  2. 安全性:

    • GET请求:参数在URL中明文显示,因此不适合传递敏感信息,比如密码等。GET请求可以被缓存、浏览器历史记录等留存,可能会暴露敏感信息。
    • POST请求:参数在请求体中传递,不会明文显示在URL中,相对于GET请求更安全,适合传递敏感信息。
  3. 请求体:

    • GET请求:没有请求体,因为参数是在URL中传递的。
    • POST请求:有请求体,参数包含在请求体中,格式可以是多种类型,比如JSON、表单数据等。
  4. 请求长度限制:

    • GET请求:受浏览器和服务器限制,一般有长度限制,较大的数据可能会被截断。
    • POST请求:没有固定的长度限制,可以传输大量数据。
  5. 幂等性:

    • GET请求:通常是幂等的,多次请求同一个URL应该返回相同的结果。
    • POST请求:不一定是幂等的,多次请求同一个URL可能会产生不同的副作用。
  6. 使用场景:

    • GET请求:适合用于获取资源,比如获取页面、图片等。
    • POST请求:适合用于提交数据,比如表单提交、上传文件等。

 

 

 

二、

标签:协议,HTTP,请求,GET,前端,html,服务器,连接,三剑客
From: https://www.cnblogs.com/dgp-zjz/p/17560241.html

相关文章

  • 前端实现浏览器端大文件分片上传
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求         <formid="postForm"action="${pageContext.request.contextPath}/UploadServlet"method="post"e......
  • java前端框架
    实现Java前端框架的流程为了实现Java前端框架,我们需要按照以下步骤进行操作。下面的表格展示了整个流程的步骤和每个步骤需要做的事情。步骤操作步骤1创建项目步骤2导入依赖步骤3设计前端框架结构步骤4编写HTML模板步骤5编写CSS样式步骤6编写JavaS......
  • express發送單個純HTML頁面
    1只需要使用res.sendFile("FilePath",{root:__dirname})路徑必須是絕對路徑,除非指定root2頁面內引用的其它文件不會被發送,但是在客戶端會將其中引用的文件以url請求的方式向服務端重新請求,這時候就需要配置其中引用文件的訪問路徑 在引用的script中,src中的路徑前......
  • 前端开发中FormData使用方法说明
    **FormData的主要用途有两个:**1、将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率。2、异步上传文件**一、创建formData对象****1、创建一个空对象:**//通过FormData构造函数创建一个空对象varformdata=newFormData();//可以......
  • PHPCMS shtml设置_PHPCms教程
    什么是SSI?SSI是英文ServerSideIncludes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程......
  • 小程序二维码配置+前端生成带参二维码+数据加密解密+地址逆解析
    这是一个关于用户回访调查的小程序,技术栈vue3+uniapp。遇到的知识点如下:1.微信公众平台认证的小程序账号只对应一个小程序,一个邮箱只能绑定一个小程序,如果企业之前有认证过微信公众号的,可以复用微信公众号的资料认证小程序,这样就不需要另外收认证费。(复用公众号资料认证小程序流......
  • 10个最常见的HTML5面试题及答案
    1、新的HTML5文档类型和字符集是?HTML5文档类型很简单:<!doctypehtml>HTML5使用UTF-8编码示例:<metacharset=”UTF-8″>2、HTML5中如何嵌入音频?HTML5支持MP3、Wav和Ogg格式的音频,下面是在网页中嵌入音频的简单示例:<audiocontrols><sourcesrc=”jamshed.m......
  • vue-day23--v-html指令
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>v-html指令</title><script......
  • 前端Vue仿美团右侧侧边栏弹框筛选框popup alert
    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随意的进行组合。大大提升开发效率......
  • Html利用Canvas绘制图形
    今天接到粉丝私信,询问是否可以通过Canvas绘制一些图形,然后根据粉丝提供的模板图,通过Canvas进行模拟绘制,通过分析发现,图形虽然相对简单,但是如果不借助相应的软件,纯代码绘制还是稍微费些时间。今天将绘制图形源码分享出来,仅供学习分享之用,如有不足之处,还请指正。 什么是Canvas?......