HTTP基础

2021/08/27

HTTP 全称是「超文本传输协议」,是一个「客户端」和「服务端」之间传输数据的通信协议。

什么是HTTP?

HTTP 全称是 「超文本传输协议」,是一个「客户端」和「服务端」之间传输数据的通信协议。

  • 文本:指的是 HTML,以文本的方式传输页面;
  • 超文本:扩展性文本,指的是带有链接的 HTML
  • 协议:是一个通信规则协议。

一次HTTP请求响应

「浏览器/APP」「服务器」 发起请求「服务器」 响应「浏览器/APP」,是一次完整的 HTTP 请求。

HTTP请求报文和响应报文

请求报文

一个请求报文包括三部分:

  • 请求头: 包括 请求方法pathHTTP版本
  • Header:包括 Host、Content-Type、Content-Length 等;
  • Body:只有 POST、PUT 两种请求方法才有Body

响应报文

一个响应报文也包括三部分:

  • 响应头: 包括 HTTP版本、状态码、状态信息
  • Header:包括 Content-Type、Content-Length 等;
  • Body:都可以有Body

请求方法和状态码

请求方法:

  • GET:获取资源,没有Body,幂等;
  • POST:增加或修改资源,有Body,不幂等;
  • PUT:修改资源,有Body,不幂等;
  • DELETE:删除资源,没有Body,幂等;
  • HEAD:跟 GET 一样,但是只获取 Header,可以查看资源信息。

状态码:

  • 1xx:临时性消息(101:切换协议);
  • 2xx:请求成功,如200;
  • 3xx:重定向(301:资源永久迁移;302:资源临时迁移);
  • 4xx:客户端错误(401:未授权;404:资源不存在);
  • 5xx:服务器错误。

Header和Body

常见Header的作用:

  • Host:不是用来定位主机的,主机是通过 DNS 查询定位的。Host 是用来定位主机里面的某个子主机(虚拟主机);
  • Content-Length:记录数据长度;
  • Content_type:数据类型;
    • text/html:文本类型;
    • application/x-www-form-urlencoded:普通表单;
    • multipart/form-data;boundry=xxx:有二进制文件的表单,boundry 是分隔符;
    • application/jsonJSON 格式数据;
    • image/jpeg:单图片数据;
  • Location:重定向地址;
  • User-Agent:告诉服务器是一个怎样的客户端;
  • Accept-Range/Ragne:获取指定范围的数据;
  • Cookie/Set-Cookie:设置Cookie;
  • Authorization:授权信息。

RESTful HTTP

RESTful 是一种风格,正确使用 HTTP 就是 RESTful HTTP 了。

每个 URL 指向一个「资源」,通过 GET/POST/PUT/DELETE 这些动作对「资源」进行处理。

完毕。


公众号:JairusTse的日常

(转载本站文章请注明作者和出处 JairusTse的技术博客

Post Directory