HTTP笔记

HTTP的定义

HTTP (Hypertext Transfer Protocol) 即超文本传输协议,和 HTML (Hypertext Markup Language) 超文本标记语⾔一起诞⽣,用于在⽹络上请求和传输 HTML 内容。

超文本 (Hypertext),即「扩展型⽂本」,指的是 HTML 中可以有链向别的⽂本的超链接 (Hyperlink)。

以上定义中 Hyper 有拓展的一层意思,互联网创始之初,人们就在思考如何更加方便的在互联网传输信息,最初这些信息都是以文本形式进行传输,随着互联网信息越积约多,就急需一种让文件之间互相关联起来的方式来提高信息查找效率,于是 HTML 这种在文本文件中可以指向别的文本的语言(Hypertext Markup Language 超文本标记语言)就诞生了,随后用户传输这种文本的协议也诞生了也就是 HTTP 协议。

HTTP请求

image.png

method

通常是由一个动词例如GET、POST或者一个名词像OPITIONS、HEAD来定义客户端的动作行为。
通常客户端的操作都是获取资源(GET方法)或者发送HTML form表单值(POST方法)。

路径

获取资源的路径,通常是上下文中就很明显的元素资源的URL,它没有协议、域、或者TCP的端口。

HTTP协议版本号

HTTP/1.1或者HTTP/2

headers

服务端表达其它信息的可选头部
对于一些像POST这样的方法,报文的body就包含了发送的资源,这与响应报文的body类似。

HTTP响应

image.png

响应报文包含了下面的元素:

  • HTTP协议版本号。
  • 一个状态码,以及失败的原因。
  • 一个状态信息,这个信息是非权威的状态码描述信息,可以由服务端自行设定。
  • HTTP 头,与请求头部类似。
  • 可选项,比起请求报文,响应报文中更常见地包含获取的资源body。

关于状态码

状态码(Status Code)
状态码全部表现为三位数字,用于对应响应结果的类型描述(如「200 请求成功」 「404 内容未找到」),常见如下
1xx:临时性消息;100(继续发送)、101(正在切换协议)。
2xx:成功;200(OK)、201(创建成功)。
3xx:重定向;301(永久移除)、302(暂时移动)、304(内容未改变)。
4xx:客户端错误;400(客户端请求出错)、401(认证失败)、403(被禁止)、404(找不到内容)。
5xx:服务器错误;500(服务器内部错误)、502(网关错误)。

知识重点

请求

请求的状态行

包含方式(请求动词)路径HTTP版本

HTTP消息头(请求头)

HTTP 消息头允许客户端和服务器通过 request和 response传递附加信息。一个请求头由名称(不区分大小写)后跟一个冒号“:”,冒号后跟具体的值(不带换行符)组成。该值前面的引导空白会被忽略。

请求体

在GET中一般为空

响应

状态行

包含HTTP版本、状态码、状态信息
常见的状态码需要记牢

响应头

与上面的请求头类似

响应体

也就是下载内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • OSI模型 开放式系统互联通信参考模型(Open System Interconnection Reference...
    DHFE阅读 4,603评论 0 0
  • 一 . HTTP 简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTT...
    siyanGo阅读 1,638评论 0 1
  • “你知道当我们在网页浏览器(Web browser)的地址栏中输入 URL 时,Web 页面是如何呈现的吗?” H...
    洛洛爱吃肉阅读 2,738评论 0 3
  • 第一章:Web及网络基础 TCP/IP是互联网相关的各类协议族的总称,包含TCP、UDP、HTTP、FTP、IP、...
    loneyzhou阅读 2,981评论 0 1
  • 第一章 网络基础 计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通...
    Gen_阅读 3,895评论 0 0