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

前端八股之HTTP

一,负责域名解析的DNS服务

应用层。提供域名到IP地址之间的解析服务。计算机擅长解数字,人类擅长字母配合数字的表达方式

各种协议与HTTP协议的关系

客户端已知http://haker,问DNS这个网址对应的IP地址是什么。得到IP地址后,http协议生成针对web服务器的HTTP请求报文,TCP协议把http请求报文分成多个小段。IP协议搜索对方的地址,一边中转一边传送。TCP协议从对方那里接受到报文合并重组报文段,按照序号以原来的顺序重组请求。HTTP协议对web服务器请求的内容处理。然后服务器请求的处理结果也按照TCP/IP协议向用户进行回传

URI和URL

统一资源标识符,统一资源定位符。url是使用web浏览器等访问web页面时需要输入的网页地址

不是所有的应用程序都符合RFC

二,HTTP/1.1版本

HTTP协议用于客户端和服务器端之间的通信
通过请求和响应的交换达成通信,请求必定由客户端发出,而服务器回复响应

GET表示请求访问服务器的类型,方法。

请求报文:请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成
响应报文:协议版本,状态码(表示请求成功或失败的数字代码),用以解释状态码的原因短语,可选的响应首部字段以及实体主体构成

接收到请求的服务器,将请求内容的处理结果以响应的形式返回。

状态码,资源实体的主体

HTTP是不保存状态的协议

无状态协议,它不会对发送过的请求和响应做持久化处理

为了保存用户的状态,引入cookie技术

请求URI定位资源

URI特定功能,在互联网任意位置都能访问到(?)

如果不是针对特定资源而是对服务器本身发起请求,用*来代替请求URI

告知服务器意图的HTTP方法
GET:获取资源
POST:传输实体主体
PUT:传输文件

因为http没有验证机制,所以一般也不用,除非Web验证机制配合

HEAD:获得报文首部。

类似与GET,只是不返回报文主体

DELETE:删除文件

与put相反,一般不用

OPTIONS:询问支持的方法
TRACE:追踪路径

不常用,还容易引发XST(跨站追踪)攻击

CONNECT:要求用隧道协议连接代理

使用SSL(安全套接协议)TLS(传输层安全)协议把通信内容加密后经网路隧道传输

使用方法下达命令

方法区分大小写,需要用大写

持久连接节省通信量
持久连接:

只要一端没有明确提出断开连接,则保持TCP连接状态(便于连接后多次请求和响应的交互)

管线化

持久连接使得多数请求以管线化方式发送成为可能

使用Cookie的状态管理

Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。

Cookie会根据从服务端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端在向服务端发请求时,客户端会自动在请求报文中加入Cookie值后发送出去

三,HTTP报文内的HTTP信息
HTTP报文

报文首部+报文主体。两者中间用空行连接

请求报文及响应报文的结构

请求行,状态行,首部字段,其他(如Cookie)

编码提升传输速率
报文主体和实体主体的差异

报文message:http基本通信中的基本单位,通过HTTP通信传输

实体entity:作为请求或响应的有效荷载数据(补充项)被传输

压缩传输的内容编码
分割发送的分块传输编码

分块传输编码会将实体主体分成多个部分(块),Transfer Coding

发送多种输入的多部份对象集合

MIME多用途因特网邮件扩展机制

获取部分内容的请求范围

指定范围发送的请求叫做范围请求,针对范围请求,响应会返回状态码为206的响应报文

如果服务器端无法响应范围请求,则会返回状态码200 OK和完整的实体内容

内容协商返回最合适的内容

内容相同但语言不太一样,中文和英文。

内容协商机制:

服务器驱动协商,客户端驱动协商,透明协商(结合两端)

四,返回结果的HTTP状态码
状态码告知从服务器端返回的请求结果

1xx正在处理接受的请求

2xx请求正常处理完毕

3xx需要进行附加操作以完成请求

4xx服务器无法处理请求

5xx服务器处理请求出错

2xx成功

200ok正常处理

204 no content

206 客户端进行了范围请求,而服务器成功执行了这部分GET请求

3xx重定向

浏览器需要执行某些特殊的处理以正确处理请求

301

http://www.dtcms.com/a/536689.html

相关文章:

  • rust笔记
  • 西安招聘网站建设多多鱼网页设计代码
  • 中国团队开发出有效的钙钛矿电池缓冲液
  • 使用mybatis-plus,实现将排序时,字段值为NULL的数据排在最后
  • Websocket两台服务器之间的通信
  • 网站技能培训班有哪些做网站用什么软件ps字体
  • 摩根大通将支持比特币和以太坊作为抵押品
  • 绿园区住房和城乡建设局网站c2c平台是什么意思
  • Web前端开发:用JavaScript阻止表单提交
  • 从 TCP 粘包到线程池:一起了解用 QRunnable 重构 Qt 高并发网络通信架构
  • Blender入门学习07 - 形态键
  • 网站推广常用方法包括二手车 东莞网站建设
  • LUMI 大模型分拣机器人应用 和 Lumi视觉标定
  • 开源项目分享:Gitee热榜项目 2025-10-27 日榜
  • [Dify 实战] 封闭插件开发到发布:本地编写、Remote调试与上线全流程(Python)
  • ARM《5》_系统移植(在开发板上运行linux程序)
  • 长沙网络营销公司排名郑州seo外包
  • 仿淘宝电商网站开发报价安徽网站开发培训价格
  • 关于Mysql的学习二(函数,约束与多表查询)
  • Milvus向量数据库介绍
  • 基于AI框架LangGraph对比Workflow模式与Agent模式
  • 哪个网站建设好网站建设的原则有哪些方面
  • 怎样给网站找空间做备案海南省住房和城乡建设部网站
  • 介绍如何借助淘宝/天猫的 API 接口,实现订单系统的自动同步
  • 错误处理最佳实践
  • 磁盘格式化和LVM挂载
  • 泛微Ecology9实现流程界面隐藏按钮
  • Viewport:网页设计中的关键元素及其优化策略
  • 网站建设功能报山东城乡建设厅网站首页
  • wordpress 页脚加链接外贸网站优化哪家好