【前端】面试笔试必考点之HTTP协议

HTTP协议

无状态、非持续连接/持续连接

  • 无状态协议:“每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况”

  • 非持续连接(每个请求、响应是由一个单独的TCP连接发送)与持续连接 (所有请求、响应由相同的TCP连接发送)

HTTP1.1比HTTP1.0的改进之处

  1. 增加了请求和响应头部
  2. 采取持续连接(一个TCP连接可以传送多个HTTP请求和响应)
  3. 采取流水线传送,即多个响应和请求传送可以重叠。

HTTP2.0

http请求报文/http响应报文

HTTP请求/响应报文

HTTP报文格式

HTTP请求、响应报文格式
HTTP请求头信息

http请求获取图片

强制缓存与对比缓存

服务器收到HTTP请求后把图片的E-tag与发送的比较,发现没有改变,就会发送HTTP响应 304 not modified。然后浏览器直接从缓存中取图像而不是从web服务器获取。if-modified-since的最小单位是秒,而Etags的时间粒度更小。
disk cache memory cache
disk cache memory cache 来自知乎
http请求获取图片

get与post的区别

  1. get请求方式的请求参数加在URL之后,有长度限制,大小一般超过1k。
  2. post请求方式的请求参数加在请求内容里,大小没有限制。
  3. get请求方法要求。
  4. post请求方法要求被请求服务器接收附在请求后的内容,通常用于提交表单。
  • 来自: http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
  • GET后退按钮/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
  • GET书签可收藏,POST为书签不可收藏。
  • GET能被缓存,POST不能缓存 。
  • GET编码类型application/x-www-form-url,POST编码类型encodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
  • GET历史参数保留在浏览器历史中。POST参数不会保存在浏览器历史中
  • GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。POST无限制。
  • GET只允许 ASCII 字符。POST没有限制。也允许二进制数据。
  • 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
  • GET的数据在 URL 中对所有人都是可见的。POST的数据不会显示在 URL 中。

HTTP状态码

HTTP状态码
HTTP状态码
HTTP状态码

1xx:表示可续发请求
2xx:表示成功
​ 202 成功
​ 204 成功,不返回实体主体
​ 206成功,执行一个范围请求
3xx:表示重定向
​ 301 永久的,请求的网页永久移动到新的位置
​ 302 临时重定向,但是禁止post变成get
​ 303 另外一个url
​ 304 判断是否要更新缓存,请求头部携带IF-MODIFIED-SINCE
​ 307 临时重定向
4xx:表示客户端错误
​ 400 客户端语法错误
​ 401 未经授权
​ 403 服务器拒绝服务
​ 404 请求资源不存在
5xx:服务器端错误
​ 500 不可预期的错误
​ 503 此时不能提供服务,稍后恢复正常

浏览器缓存(HTTP请求报文和HTTP响应报文头部)

  • HTTP协议有哪些请求方法,概述浏览器与HTTP头相关的缓存策略

缓存

HTTPS

HTTPS

  • HTTPS特点

    1. HTTPS协议需要到CA申请证书
    2. HTTP协议信息明文传送,HTTPS协议是具有安全性的SSL加密传输协议
    3. HTTP与HTTPS连接方式不同,端口也不同,HTTPS端口是443
    4. HTTP的连接很简单,是无状态的,HTTPS的连接是信息加密、身份认证的安全传输协议
  • 密码使用post表单提交仍然是不安全的,有什么措施来保护

    MD5摘要

猜你喜欢

转载自blog.csdn.net/qq_33291740/article/details/79579721
今日推荐