http那些事

作者: SaSa_Wang | 来源:发表于2018-07-21 23:22 被阅读8次

1.http报文

HTTP (HypertextTransferProtocol/超文本传输协议) 是应用层级(application)的数据传输协议。
在应用程序间传输的数据块就是http报文(message)。
报文由3部分组成,

  • 起始行(start line),
  • 包含属性的首部(header),
  • 可选的包含数据的主体部分(body)

请求报文

<method><request-URL><version>
<headers>

<body>

响应报文

<version><status><reason-phrase>
<headers>

<body>

列举一些头部属性


image
image

需要着重了解的是响应报文起始行的状态码以及控制缓存的头部属性。

2.http请求方式

  1. GET
  2. HEADER
    类似GET ,但响应报文只有头部,用于查询。
  3. POST
    常用于创建服务器数据
  4. PUT
    常用于修改服务器数据
  5. DELETE
  6. TRACE
  7. OPTIONS

3.http状态码

1xx 没问题,请继续
2xx 响应成功
    "200":成功;"202":已响应,未处理完成
3xx 重定向或使用缓存  
    "301":资源永久重定向;"304":使用缓存
4xx 客户端有问题
    "403":无权限访问;"404":找不到资源
5xx 服务器有问题
    "500":服务器出现错误;"503":服务器正忙

4.缓存控制机制

1.指定缓存过期时间(类似食品保质期,某月某日过期)

Expires: Mon,10 Dec 1990 02:25:22GMT。

缺点:无法监测文件更新,服务器与客户端时间可能不一致。

2.指定过期的相对时间(类似化妆品的保质期,开盖后6个月)

cache-control: max-age = 400s 

缺点:无法监测文件更新。

3.过期时间+版本对比

增加文件版本编号Etag,当缓存过期后,比对服务器与客户端的文件版本编号,一致则仍使用缓存。

Cache-Control: max-age=300;
ETag:W/"e-cbxLFQW5zapn79tQwb/g6Q"

缺点: 在分布式系统中,不同服务器相同文件的ETag可能会不同。

4.过期时间+更新时间对比

服务器发给客户端的文件增加Last-Modified声明,表示上次服务器告知的文件修改的时间。当缓存过期,再次向web服务器请求时带上If-Modified-Since,比对服务器文件修改时间和客户端文件修改时间,一致则仍使用缓存。

Cache-Control: max-age=0
Last-Modified: Wed, 04 Jul 2018 09:13:54 GMT

If-Modified-Since: Wed, 04 Jul 2018 09:13:54 GMT

5.HTTPS

关于https的原理,有很多文章已经讲得很好啦。简单上幅图。

image image

3.为防止"中间人攻击",引入第三方“CA证书”,CA为交换信息对象的合法性背书。

非对称加密 + 对称加密 + CA => HTTPS

相关文章

  • http那些事

    1.http报文 HTTP (HypertextTransferProtocol/超文本传输协议) 是应用层级(...

  • HTTP那些事

    网络请求API 在Android上,原生API有两个,HttpUrlConnection和HttpClient,它...

  • HTTP那些事

    前言 很久没碰网络这部分,所以一直感觉很生疏,最近买了本《图解HTTP》,花了几天时间看完了。通俗易懂,读起来非常...

  • http协议那些事

    1.输入网址后发生了什么2.http协议详解3.https协议分析4.http2协议分析5.了解http36.后台...

  • HTTP协议那些事

    简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布...

  • http协议那些事

    参考文章:https://yuchengkai.cn/docs/cs/#%E7%8A%B6%E6%80%81%E6...

  • HTTP的那些事

    Http工作原理 Http协议时Hyper Text Transfer Protocol(超文本传输协议)的缩写...

  • HTTP状态码那些事

    经常在面试中我们会被问道,关于状态码的事情 HTTP常见状态码 200 301 302 404 500 分类 分...

  • 关于HTTP的那些事

    本文将讲述如何用Chrome开发者工具查看 HTTP 请求和响应内容 一、Chrome开发者工具 第一步: 第二步...

  • http协议的那些事

    http中的一个请求头让我反思 最近在做一个项目,是基于开源框架搭建的服务器,比如redmine,zabbix,g...

网友评论

    本文标题:http那些事

    本文链接:https://www.haomeiwen.com/subject/hrikmftx.html