HTTP协议温故笔记190728

输入网址回车,后面发生了什么

  • 浏览器从地址栏的输入中获得服务器的 IP 地址和端口号;
  • 浏览器用 TCP 的三次握手与服务器建立连接;
  • 浏览器向服务器发送拼好的报文;
  • 服务器收到报文后处理请求,同样拼好报文再发给浏览器;
  • 浏览器解析报文,渲染输出页面。

浏览器从地址栏的输入中获得服务器的 IP 地址和端口号

输入 WWW.CSDN.cn 后,DNS的运行流程

  • 先检查本地的DNS缓存是否存在这个域名记录
  • 不存在找本地的hosts文件是否存在对应的记录
  • 不存在继续交给网卡的配置的DNS服务进行转发解析,常见的“8.8.8.8;114.114.114.114”;
  • 不存在去顶级域名服务com 找前缀XXX再找二级域名等等;
  • 返回结果IP请求

浏览器用 TCP 的三次握手与服务器建立连接

  • 第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;
  • 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;
  • 第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

HTTP报文长相

在这里插入图片描述

  • 请求行组成有三部分,空格分割

    • 请求方法
    • 请求目标
    • 版本号
  • 服务器响应状态行 HTTP/1.1 200 OK

    • 版本号
    • 状态码
    • 原因,数字状态码补充;
      • HTTP/1.1 404 Not Found
  • 头部字段常用的分为三大类

    • 通用字段:在请求头和响应头里都可以出现
    • 请求字段:仅能出现在请求头里,进一步说明请求信息或者额外的附加条件;
    • 响应字段:仅能出现在响应头里,补充说明响应报文的信息;
    • 实体字段:它实际上属于通用字段,但专门描述 body 的额外信息。

常见的八种请求类型

  • GET:获取资源,读取或者下载数据
  • HEAD:获取资源的元数据
    • 请求后只会传回响应头
    • 使用场景:不需要响应数据,只获取响应头,避免body浪费
  • POST:写入或者上传数据
  • PUT:类似post
    • post类似于新建,put类似于update的操作
  • DELETE:删除操作
  • CONNECT:建立特殊的链接隧道
  • OPTIONS:列出可对资源实行的方法
  • TRACE:追踪请求

安全与幂等

  • 安全

    • GET 和 HEAD 方法是“安全”的,因为请求很多次,服务器上的数据都是“安全的”;
    • POST/PUT/DELETE 会操作服务器上的资源,所以建立为不安全
  • 幂等

    • 操作多少次,结果都一样则成为“幂等”
    • post非幂等、delete、get、put、head 等都是幂等

响应状态码

常见的五类响应状态码

  • 1xx:提示信息,处理处于中间状态,需要后续操作
  • 2xx:成功,报文正确处理
    • 200 ok- 请求成功
    • 204 No Content- 请求成功,但是body为空
    • 206 Partial Content- 断点续传,body有数据,但是不是全部
  • 3xx:重定向,资源位置发生变动想,向服务器重新发送请求
    • 301 Moved Permanently- 永久重定向
    • 302 Found- 零时重定向,有时候接口后面未加/ 会帮忙加上后重新302
    • 304 Not Modified- 缓存重定向
  • 4xx:客户端错误,报文有误,服务器无法处理
    • 400 Bad Request- 请求报文有错误
    • 404 NOT FOUND- 金泰资源丢失位置啊到
    • 403 Forbidden- 无权限
    • 405 Method Not Allowed- post get 操作使用不当
  • 5xx:服务器错误
    • 500 Internal Server Error- 服务器内部错误
    • 502 Bad Gateway- 网关错误
    • 503 Service Unavailable-服务器忙碌
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值