前端面试题-网络请求-http请求方式-http状态码-url地址到浏览器渲染过程-跨域-请求测试工具-http和https

前端面试题-网络请求-http请求方式-http状态码-url地址到浏览器渲染过程-跨域-请求测试工具

http请求方式

方式 描述
get 发送一个请求来取得服务器上的某一资源
post 向url指定的资源提交数据或者附加新数据
put 跟post方法很像,也是向服务器提交数据。但是它们之间有不同,put指定了资源在服务器上的位置.post却没有
head 只请求页面的首部
delete 删除服务器上的某种资源
options 用于获取当前url所支持的方法。如果请求成功,会有一个alow的的头包含类似'post.get'这样的信息

常用方式get请求和post请求的区别

get:从指定的资源请求提交数据,用于获取数据

post:向指定的资源提交要被处理的数据,用于将数据发送给服务器

get post
安全性 安全性较差不能用来传递敏感参数,因为它的参数是通过url传递的 相对安全 参数放在request中
能否被缓存 会被缓存 不会缓存
收藏 可以被收藏为书签 不可以被收藏为书签
历史记录 保留在浏览器的历史记录中 不会保留在浏览器的历史记录中
长度 有请求长度限制 对数据长度没有要求
tcp数据包 产生1tcp数据包 产生2个tcp数据包

get和post本身都是tcp的连接,并无差别。但是由于HTTP规定和浏览器/服务器的限制,导致它们在应用过程中体现出一些不同

http的状态码有哪些?分别代表什么意思?

状态码 描述
1xx:信息状态码
100 contiune 继续 post 已发送了http head 之后服务端将返回此信息,表示确认之后发送具体参数信息
2xx:成功状态码
200 ok 正常返回信息
201 created 请求成功并在服务器创建了新的资源
202 accepted 服务器已经接收请求但是尚未处理
3xx:重定向
301 moved permanently 请求的网页已经移动到了新的位置
302 found 临时重定向
303 see other 临时重定向,且总是使用get请求新的url
304 not modified 自从上次请求后,请求的网页没有修改过
4xx客户端错误
400 bad request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求
401 unauthorized 请求未授权
403 forbidden 禁止访问
404 not found 找不到与URL相匹配的资源
5xx服务器错误
500 internal server error 最常见的服务端错误
503 service unavailable 服务端暂时无法处理请求

从输入一个url地址到浏览器完成渲染的整个过程

1.浏览器地址输入URL并回车

2.浏览器查找当前URL是否存在缓存,并比较缓存是否过期

3.DNS解析URL对应的IP

4.根据IP建立TCP连接(三次握手)

5.发生http请求

6.服务器处理请求,浏览器接受HTTP响应

7.浏览器解析并渲染页面

9.关闭Tcp连接(四次握手)

解决跨域的三种方式

1.CROS 服务端 设置请求头

javascript 复制代码
//设置响应头 设置允许跨域
  response.setHeader('Access-Control-Allow-Origin','*')

2.利用script标签支持跨域的属性 此方法需要服务端配合指定回调

javascript 复制代码
<script>
    var body_=document.getElementsByTagName('body')[0];
    function search_(){
        var value_=q.value;
        if(value_.trim()==''){
            return;
        }
        var script_=document.createElement('script');//利用script标签之处跨域的属性
        script_.src='http://suggest.taobao.com/sug?code=utf-8&q=' + value_ + '&callback=cb';
        body_.appendChild(script_);
        console.log(script_);
    }
    function cb(res) {//回调函数
        console.log(res);
        // 数据渲染到页面
        var lis = ''
        for (var i = 0; i < res.result.length; i++) {
          lis += '<li>' + res.result[i][0] + '</li>'
        }
        console.log(lis)
        list.innerHTML = lis
      } 
</script>

3.代理服务器 通过vue-cli实现 配置vue.config.js文件

javascript 复制代码
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  //开启代理服务器方式一方便简洁
  //缺陷一次只能配置一个 且先会去public中去找
  //如果pubblic中有就不会转发请求了 容易出现问题
  // devServer: {
  //   proxy: 'http://localhost:5000'
  // }
  //开启代理服务器2
  devServer: {
    proxy: {
      //请求前缀是谁 如果请求前缀符合 下面就继续走
      //请求前缀紧跟端口号 写在axios里
      '/quan': {
        //请求的目标服务器
        target: 'http://localhost:5000',
        //路径过滤 正则替换空
        pathRewrite:{'^/quan':''},
        //用于支持webscoket
        ws: true,
        //服务器骗不骗另一个服务器自己从哪里来
        changeOrigin: true
      },
      // '/foo': {
      //   target: '<other_url>'
      // }
    }
  }
})

3种解决跨域方式的区别:

1.后端处理 前端基本不动啥

2.script标签引入资源不存在跨域 可以引入但是需要后端配合你 让你能掉回调方法

3.vue-cli 开启本地服务器 服务器和服务器之间不存在跨域 从本地代理一下 就能解决跨域 完全前端自己写这个

区别

请求测试工具-postman的使用

http和https

http:协议运行在TCP之上,明文传输,客户端与服务器无法验证对方的身份,默认端口80

https:运行在ssl(secure socket layer)上面,ssl运行在tcp上面,是添加了加密和认证机制的http,默认端口443,https的加减密处理消耗更多的CPU和内存资源,还需要证书。

相关推荐
小梁不秃捏34 分钟前
HTTP 常见状态码技术解析(应用层)
网络·网络协议·计算机网络·http
网安加云课堂37 分钟前
课程分享 | 安全系统建设的挑战与解决方案
网络·安全·web安全
learning-striving1 小时前
eNSP下载安装(eNsp、WinPcap、Wireshark、VirtualBox下载安装)
网络·计算机网络·华为·路由器·ensp·交换机
m0_748230941 小时前
Redis 通用命令
前端·redis·bootstrap
YaHuiLiang2 小时前
一切的根本都是前端“娱乐圈化”
前端·javascript·代码规范
黑客Ela2 小时前
网络安全营运周报
网络·安全·web安全
挣扎与觉醒中的技术人2 小时前
网络安全入门持续学习与进阶路径(一)
网络·c++·学习·程序人生·安全·web安全
技术小齐2 小时前
网络运维学习笔记 017HCIA-Datacom综合实验01
运维·网络·学习
卑微的小鬼3 小时前
rpc和http的区别,为啥golang使用grpc 不使用http?
http·rpc·golang
ObjectX前端实验室3 小时前
个人网站开发记录-引流公众号 & 谷歌分析 & 谷歌广告 & GTM
前端·程序员·开源