JavaScript扩展知识点 01、前后端交互与HTTP协议

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: JavaScript扩展知识点 01、前后端交互与HTTP协议

一、前后端交互


1.1、前端三种方式与后端交互


1、使用浏览器访问网页:在浏览器上输入网址,回车。


2、HTML标签自动发送:浏览器在解析HTML标签的时候,遇到一些特殊标签会再次向服务器发送请求!


自动发送如:link、img、script、iframe。

另外一些标签浏览器解析时不会向服务器发送请求,但是用户可以使用他们向服务器发送请求如:a、form


3、Ajax和Fetch。


扩展:解析过程中来进行发送请求,chrome对于发送请求一般可以并发6个。对于自动发送的请求会进行异步请求,并不会直接等着请求响应后再向下进行解析。


一般对于图片放置在不同的服务器中,这样的话一个页面来发送请求得到不同的资源文件时就不会产生同时对一个服务器发送请求了!


二、HTTP


2.1、介绍HTTP


HTTP(HyperText Transfer Protocol):超文本传输协议。


HTML:超文本标记语言。


超文本定义:原先一个个单一的文本,通过超链接将其联系起来,由原先单一的文本变成可无限延伸、扩展的超级文本、立体文本。



2.2、浏览器与服务器完整的一次请求



1、首先浏览器在发送请求时会去看是否有缓存,有缓存的话直接就使用缓存。


2、没有缓存时就会先去DNS服务器根据域名得到IP地址。


3、得到IP地址之后向服务器发起TCP连接。


4、在进行三次握手成功之后接着发送HTTP请求到服务器。


5、服务器根据请求来发送HTTP响应。



2.3、HTTP报文


请求报文:浏览器向服务器端发送请求时,该请求本身就是信息就是请求报文。


响应报文:服务器向浏览器发送响应时传输的信息,叫响应报文。



报文格式


请求报文:请求、请求头(起始行+首部)、请求体。


GET请求:没有请求体,数据通过请求头携带。

POST请求:有请求头,数据通过请求体携带。

响应报文:响应、响应头(起始行+首部)、响应体。



2.4、HTTP方法


主要有GET、POST、PUT、DELETE(对应查增改删)


GET:获取数据,如获取资源(文件)。

POST:创建数据,如注册。

PUT:更新数据,如修改个人信息,修改密码。

DELETE:删除数据,如删除一条评论。

若是我们不采用RESTful风格来编写接口


通过用户ID获取个人信息,使用GET方法(查):https://www.imooc.com/api/http/getUser?id=1
注册新用户,使用POST方法(增):https://www.imooc.com/api/http/addUser
修改一个用户,使用POST方法(改):https://www.imooc.com/api/http/modifyUser
删除一个用户,使用POST方法(删):https://www.imooc.com/api/http/deleteUser


特征:我们可以看到不采用RESTFul风格写出来的api,查使用get请求,增删改都使用post请求,并且对于判断要让服务器执行什么操作需要使用如getUser、addUser、modifyUser,需要有很强的语义化对用户进行操作,这样子并不是很简洁。



采用RESTful风格编写接口(完美应用到了四个方法)


通过用户ID获取个人信息,使用GET方法(查):https://www.imooc.com/api/http/User?id=1
注册新用户,使用POST方法(增):https://www.imooc.com/api/http/User
修改一个用户,使用PUT方法(改):https://www.imooc.com/api/http/User
删除一个用户,使用Delete方法(删):https://www.imooc.com/api/http/User


好处:我们可以看到对于用户的相关请求仅仅使用/User就能够表示,怎么能够确定是什么含义呢?借助http方法来进行表名,后端可以根据http方法来进行识别要进行的操作。



2.5、GET与POST区别



2.6、HTTP状态码


状态码:定义服务器对请求的处理结果,是服务器返回的!


HTTP状态码语义:


100-199:代表请求已被接收,需要继续处理。
  101:websocket,像vscode就是使用的websocket来实现的实时更新浏览器页面状态,使用live server插件后,浏览器就会向服务器发送ws的文件,你可以在浏览器上查看到(火狐)。
200-299:成功,最常见的就是200。
300-399:重定向
  301:Moved Permanently永久性移动,重定向请求缓存在浏览器本地,之后都会直接向服务器发送重定向地址的请求获取到数据。弊端就是有时候服务器重定向仅仅只是暂时的,由于使用了该状态码后客户端每次就会直接向重定向地址发送请求了,造成不可控的情况!
  302 :Moved Temporarily暂时性移动,浏览器下次加载该资源时会先发送请求来得到资源而不是从缓存中获取。
  304 Not Modified:客户端向服务器发送请求时得到304,表示未修改,此时客户端就会收到通知表示服务器端的资源并没有修改那么就会继续使用本地缓存的资源。
400-499:请求错误(浏览器有误)
  404:找不到指定的资源文件,路径有误。
500-599:服务器错误
  500:Internet Server Error。


相关文章
|
1天前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
1天前
|
JavaScript 前端开发 Java
JavaScript 类知识点概览
概览JavaScript中类的知识点,包括类的定义和实现、添加方法和get/set方法、类的继承和静态方法的使用。通过学生类和人员类的例子,演示了类的构造器、方法定义、继承关系和静态方法的调用。
JavaScript 类知识点概览
|
7天前
|
数据采集 JSON API
🎓Python网络请求新手指南:requests库带你轻松玩转HTTP协议
本文介绍Python网络编程中不可或缺的HTTP协议基础,并以requests库为例,详细讲解如何执行GET与POST请求、处理响应及自定义请求头等操作。通过简洁易懂的代码示例,帮助初学者快速掌握网络爬虫与API开发所需的关键技能。无论是安装配置还是会话管理,requests库均提供了强大而直观的接口,助力读者轻松应对各类网络编程任务。
37 3
|
8天前
|
机器学习/深度学习 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
在数据驱动的时代,网络数据抓取对于数据分析、机器学习等至关重要。HTTP协议作为互联网通信的基石,其重要性不言而喻。Python的`requests`库凭借简洁的API和强大的功能,成为网络数据抓取的利器。本文将通过实战演练展示如何使用`requests`库进行数据抓取,包括发送GET/POST请求、处理JSON响应及添加自定义请求头等。首先,请确保已安装`requests`库,可通过`pip install requests`进行安装。接下来,我们将逐一介绍如何利用`requests`库探索网络世界,助你成为数据抓取大师。在实践过程中,务必遵守相关法律法规和网站使用条款,做到技术与道德并重。
21 2
|
10天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
42 3
|
14天前
|
监控 安全 应用服务中间件
如何配置HTTPS协议?
如何配置HTTPS协议?
27 4
|
14天前
|
安全 网络安全 数据安全/隐私保护
HTTP与HTTPS协议区别及应用场景
在互联网高速发展的今天,HTTP与HTTPS作为数据传输的基石,作用至关重要。HTTP允许客户端与服务器间传输超文本文档,但其数据传输过程未加密,存在安全隐患;HTTPS则在此基础上加入了SSL/TLS协议,实现了数据加密传输,增强了安全性,广泛应用于电子商务、网上银行、政府网站及社交媒体平台等涉及敏感信息传输的领域,有效保护了用户隐私和数据安全。随着网络安全意识提升,HTTPS正逐渐成为主流。
|
1天前
|
JavaScript 网络协议 Windows
|
9天前
|
Python
HTTP协议不再是迷!Python网络请求实战,带你走进网络世界的奥秘
本文介绍了HTTP协议,它是互联网信息传递的核心。作为客户端与服务器通信的基础,HTTP请求包括请求行、头和体三部分。通过Python的`requests`库,我们可以轻松实现HTTP请求。本文将指导你安装`requests`库,并通过实战示例演示如何发送GET和POST请求。无论你是想获取网页内容还是提交表单数据,都能通过简单的代码实现。希望本文能帮助你在Python网络请求的道路上迈出坚实的一步。
25 0
|
JSON 前端开发 JavaScript
JavaScript HTTP客户端库axios介绍
HTTP客户端是很多时候我们都需要用到的功能,今天就来介绍一个比较流行的JavaScript编写的HTTP客户端库axios。 安装 如果你会使用npm的话,可以使用npm来装,非常方便。
923 0

热门文章

最新文章