首页 > 其他分享 >4-高频基础题

4-高频基础题

时间:2022-11-13 11:25:41浏览次数:30  
标签:浏览器 请求 GET 基础 TCP 域名 服务器 高频

一、状态码

状态码 含义
1xx Informational(信息性状态码) 接受的请求正在处理
2xx Success(成功状态码) 请求正常处理完毕
3xx Redirection(重定向) 需要进行附加操作以完成请求
4xx Client error(客户端错误) 客户端请求出错,服务器无法处理请求
5xx Server Error(服务器错误) 服务器处理请求出错
  • 200(成功) 服务器已成功处理了请求
  • 400:请求无效 产生原因:前端提交请求的字段名或者类型与后端的实体没有保持一致
  • 401:当前请求需要用户验证
  • 403:服务器已经得到请求,但是拒绝执行
  • 404(未找到)服务器找不到请求的网页。
  • 500(服务器内部错误) 服务器遇到错误,无法完成请求。
  • 501(尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
  • 502(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
  • 503(服务不可用) 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
  • 504(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
  • 505(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

二、Get和Post区别

GET和POST是HTTP协议中的两种发送请求的方法,HTTP的底层是TCP/IP,所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。

1. 传参方式不同

  • GET方法提交的数据会放在URL之后,通过?连接,通过&进行参数分割。
  • POST请求通过request body传递参数,将请求信息放置在报文体中

2. 传输数据大小
  GET方法提交的数据大小有限制,不能大于2KB(因为浏览器对URL的长度有限制),而POST方法提交
数据没有限制。

3. 后退页面

  get后退不会有影响,post后退会重新进行提交

4. 缓存

  GET请求能够被缓存,会保存在浏览器的浏览记录中,以GET请求的URL能够保存为浏览器书签,Post请求不具有这些功能。

5. 字符类型

  get只支持ASCII字符,post没有字符类型限制

6. GET产生一个TCP数据包;POST产生两个TCP数据包。

  • 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
  • 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。但并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

7. 安全性

GET比POST更不安全

  • Get安全性非常低,参数直接暴露在url中
  • Post传递数据比较隐私,但提交的参数也可以通过F12查看,从安全性考量区别不大。
PS. 为什么Get的效率比Post高
  • post在接收返回来的数据会先将请求头发送给服务器确认,然后才真正的发送数据,(相当于第一次先向服务器打个招呼,第二次才将数据真正的发过来,get则是直接发送数据。专业的说法是,get产生一个TCP数据包,post产生两个TCP。数据包但并不是所有的浏览器post都会请求两次,火狐浏览器就会请求一次)总结起来就是请求的过程比get更多
  • get会将数据进行缓存

三、在浏览器输入URL回车之后发生了什么?

  1. URL解析
  2. DNS域名解析
  3. TCP连接
  4. Http请求
  5. 响应请求
  6. 页面渲染
1. URL解析
首先判断用户输入的内容是url地址还是待搜索关键字,然后做出响应的操作。
2. 域名解析
解析过程大概如下:
1、搜索浏览器DNS缓存,浏览器缓存会维护一张域名跟ip地址的映射关系表
2、如果没有命中则搜索操作系统的DNS缓存
3、如果还是没有命中,则操作系统将域名发送到本地域名服务器,本地域名服务器通过递归的方式查询自己的DNS缓存,查找
到后,将结果返回
4、若本地域名服务器的DNS缓存也没有命中,则本地域名服务器向上级域名服务器进行迭代查询。
    第一步 本地域名服务器先向根域名服务器发起请求,根域名服务器将顶级域名服务的地址返回给本地域名服务器
    第二步 本地域名服务器根据顶级域名服务器地址向顶级域名服务器发起请求,然后得到权限域名服务器地址
    第三步 本地域名服务器通过权限域名服务器地址向权限域名服务器发起请求,然后得到该域名的ip地址
5、本地域名将IP地址返给操作系统,并且本地域名将该IP缓存起来
6、操作系统将IP返回给浏览器,并将ip缓存起来
7、浏览器得到ip地址,并将ip缓存起来
3. TCP连接
在客户端发送数据给服务端之前,会发起TCP三次握手以同步客服端和服务端的序列号和确认号,并交换TCP窗口大小信息

完成三次握手,客户端和服务端可以开始传输数据
4. http请求
tcp建立成功之后,客户端发送http请求报文到服务端

http请求报文有四部分组成:请求行、请求头、空行、消息体
5. 响应请求
当服务器接收到客户端的请求之后,会进行逻辑处理,处理完之后,会返回给客户端一个http响应数据,
响应数据包括三部分:状态行、响应头、响应正文
6. 页面渲染
当浏览器接收到服务器的响应数据,会解析html,请求js、css等资源,最后进行页面渲染,呈现给用户。
页面渲染大概分为五步:
(1)根据HTML文件解析出DOM Tree
(2)根据CSS解析出 CSSOM Tree(CSS规则树)
(3)将 DOM Tree 和 CSSOM Tree合并,构建Render tree(渲染树)
(4)reflow(重排):Layout根据Render tree进行节点信息计算
(5)repaint(重绘):Painting根据计算好的信息绘制整个页面

四、OSI七层模型和TCP/IP四层模型

  • OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。

  • OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。

  • OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

TCP:transmission control protocol 传输控制协议;UDP:user data protocol 用户数据报协议

OSI七层网络模型 TCP/IP四层概念模型 对应网络协议
应用层(Application) 应用层 HTTP/FTP/TFTP...
表示层(Presentation) 同上 Telnet...
会话层(Session) 同上 SMTP/DNS
传输层(Transport) 传输层 TCP/ UDP
网络层(Network) 网络层 IP/ ICMP...
数据链路层(Data Link) 数据链路层 FDDI...
物理层(Physical) 同上 IEEE802.1A/ IEEE802.2到IEEE802.11

标签:浏览器,请求,GET,基础,TCP,域名,服务器,高频
From: https://www.cnblogs.com/lin77/p/16885623.html

相关文章

  • 3-Vue高频面试题
    1.你怎样理解VueVue通过MVVM思想实现数据的双向绑定,数据驱动页面视图。Vue不是一个MVVM框架,它是一个视图层框架。Vue是数据驱动的框架,我们不必纠结于DOM元素的获取......
  • C#多线程之同步基础篇
    目录一、基本概念二、锁构造MonitorMutex死锁三、信号构造SemaphoreManualResetEventAutoResetEventCountdownEvent四、等待句柄等待句柄和线程池WaitHandle一、基本概念......
  • 2022-2023-1 20221313《计算机基础与程序设计》第十一周学习总结
    2022-2023-120221313《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP......
  • 04基础元器件-熔断器(保险丝)
    1、保险的作用及工作原理保险丝的作用:保险丝的作用是,当电路发生故障或异常时,伴随着电流不断升高,并且升高的电流有可能损坏元器件,也有可能烧毁电路甚至造成火灾。如果电路......
  • 1.基础知识(4) --Matlab中(),[],与{}的区别
    前言:Matlab最核心就是矩阵表达式,在矩阵表达式经常会遇到(),[],与{}三种符号,它们的具体区别究竟是什么,下面捋一捋在Matlab中,常常会遇到(),[],和{},这个3种符号怎么区分,怎么用,......
  • 1.基础知识(5) --Matlab中特殊符号使用总结
    前言:上篇文章分享了Matlab经常会遇到(),[],与{}三种符号,下面接着捋一捋其他的特殊符号使用方法,主要有:冒号'分号&  &&与|   || 或~非.点1、:冒号冒号的主要用途是用......
  • 计算机基础和Linux安装
    计算机基础和Linux安装1.计算机系统一个完整的计算机系统由硬件系统和软件系统两大部分组成。1.1冯·诺伊曼体系结构8个二进制位(bit,b)为1个字节(byte,B)。00000000......
  • 工业机器人基础笔记(一)
    第一章续论读者可自行学习,笔记从第二章开始。此笔记仅仅为抄录,便于复习。按照拓扑结构分类,我们把工业机器人分为三类。串联机器人并联机器人混联机器人那什么是拓扑......
  • 基础命令
    启动netstartmysql连接mysql-hlocalhost-uroot-p查看进程命令ps-aux|grepXXXX切换用户suuser本地复制到远程:scp-rlocalFolderOrFileremoteUser@remo......
  • docker 基础命令
    docker安装Docker的基本组成镜像(image):docker镜像好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run==>tomcat容器(提供服务器)容器(container):docker利......