HTTP学习笔记

HTTP

HTTP是一个应用层协议建立在TCP/IP(传输层)协议之上,HTTP不关心网络通讯的具体细节。网络协议栈:HTTP(应用层)-> TCP(传输层)->IP(网络层)->网络特有的链路接口(数据链路层)-> 物理网络硬件(物理层)

HTTP报文

HTTP报文指的是来自客户端的请求或来自服务端的响应。由一行行的纯文本构成,格式如下:
请求报文格式:

   

//空行

响应报文格式:

   

//空行

  • method
    比如GET、POST等
  • request-URL
    请求URL,命名了请求资源、或者URL路径组件的完整URI(URL+URN)。
  • version
    报文所使用的HTTP版本,格式看起来如下:
    HTTP/.
    其中主要版本号(major)和次要版本号(minor)。
  • statue
    状态码由三位数字组成,具体如下:
状态码 已定义范围 说明
100 ~ 199 100 ~101 信息提示
200 ~ 299 200 ~ 206 成功
300 ~ 399 300 ~ 305 重定向
400 ~ 499 400 ~ 415 客户端错误
500 ~ 599 500 ~ 505 服务器错误

具体可参考:HTTP状态码

  • reason-phrase
    原因短语,方便阅读。
  • 起始行(start line)
    报文的第一行就是起始行,在请求报文中用来说明要做些什么,在相应报文中说明出现了什么情况。
  • 首部字段(header)
    起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间使用冒号(:)来分隔。首部以一个空行结束
  • 主体(body)
    主体数据格式可以是文本也可以是二进制数据,数据结构也没有要求可以是结构化数据也可以是非结构化数据。对于一个HTTP报文来说body是可以省略的。

MIME

MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分割。

  • HTML 格式的文本文档由 text/html 类型来标记。
  • 普通的ASCII 文本文档由 text/plain 类型来标记。
  • JPEG 格式的图片为 image/jpeg 类型来标记。
    常见的MIME类型有数百个,具体可参考MIME Type

你可能感兴趣的:(HTTP学习笔记)