http面试题

忘れられたくない
http状态码分类
  • 1xx服务器收到请求
  • 2xx请求成功
  • 3xx重定向
  • 4xx客户端错误
  • 5xx服务端错误
    • *
常见状态码
  • 200 成功
  • 301 永久重定向
  • 302 临时重定向
  • 304资源未被修改
  • 404资源未找到
  • 403没有权限
  • 500服务器错误
  • 504网关超时
    • *
methods请求方式
  • get获取数据
  • post新建数据
  • patch/put更新数据
  • delete删除数据
    • *
post和get的区别
  • get在浏览器回退是无害的,而post则会再次提交请求
  • get产生的url地址可以被收藏,而post不可以
  • get请求会被浏览器主动缓存,而post不会,除非手动设置
  • get请求只能进行url编码,而post支持多种编码方式
  • get请求参数会被完整的保存在浏览器历史记录里,而post参数不会被保留
  • get请求在url中传送参数是有长度限制的,而post没有限制
  • 对参数的数据类型,get只接受ASCLL字符,而post没有限制
  • get比post更不安全,因为参数直接暴漏在url上,不能传递敏感信息
  • get参数通过url传递,post放在request body中
    • *
http特点
1.简单快速(资源固定)
2.灵活(完成不同数据类型的传输)
3.无连接(连接一次就会被断掉)
4.无状态(不能区分上一次连接者和这一个连接者的身份)

HTTP协议报文组成部分:请求报文、响应报文

请求报文:请求行,请求头、空行、请求体
请求行:http方法+页面地址+http协议+版本
请求头(key,value值)
响应报文:状态行,响应头,空行,响应体

常用的网络协议http和https
  1. https协议需要ca申请证书,一般免费证书较少,因而需要一定费用;
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;
  4. http的连接很简单,是无状态的;https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议,比http协议安全。
    • *
Restful API

传统的API设计:把每个url当做一个功能
Restful API:把每个url当做一个唯一的资源

http headers—常见的Request headers
  • Accept浏览器可接收的数据格式
  • Accept-Encoding浏览器可接收的压缩算法,如gzip
  • Accept-Language浏览器可接收的语言,如zh-CN
  • connection-keep alive 一次TCP连接重复使用
  • cookie
  • Host
  • User-Agent(简称UA)浏览器信息
  • Content-type 发送数据格式,如application/json
http headers—常见的Response headers
  • Content-type 返回数据格式,如application/json
  • Content-length返回数据的大小,多少字节
  • Content-Encoding返回数据的压缩算法,如gzip
  • set-Cookie
http缓存—Cache control强制缓存
  • 在response headers中
  • 控制强制缓存的逻辑

image.png

cache control 的值
  • max-age设置过期的值,单位为秒
  • no-cache不缓存
  • no-store 不用本地缓存
  • private只允许最终用户做缓存
  • public允许中间的一些路由等做缓存
http缓存—协商缓存(对比缓存)

服务器端缓存策略
image.png

阅读 145
11 声望
3 粉丝
0 条评论
11 声望
3 粉丝
宣传栏