HTTP请求与响应

286 阅读3分钟

HTTP简介

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是万维网的数据通信的基础。

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。 HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。

请求与响应

访问=服务器+HTTP+浏览器

  • 浏览器负责发起请求
  • 服务器在 80 端口接收请求
  • 服务器负责返回内容(响应)
  • 浏览器负责下载响应内容

HTTP 的作用就是指导浏览器和服务器如何进行沟通。

浏览器请求

向指定的资源发出“显示”请求,一般由四个部分组成。

组成规律:

  • 第1部分的动词有 GET(取之:向服务器发出“显示资源”请求)、 POST(予之:向服务器上传信息)、 PUT(整体更新)、 PATCH(局部更新) 、DELETE HEAD OPTIONS 等;这里的路径包括「查询参数」,但不包括「锚点」(服务器不看这个,浏览器看),如果没有写路径,路径默认为 /
  • 第 2 部分中的 Content-Type 标注了第 4 部分的格式(任何想告诉服务器的信息除了数据都在这里)
  • 第3部分为了区分2与4部分,永远都是一个回车(\n)
  • 第4部分可能有可能无,动词为post的时候有,动词为get的时候无

服务器响应

组成规律:

  • 所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。 等;这里的路径包括「查询参数」,但不包括「锚点」(服务器不看这个,浏览器看),如果没有写路径,路径默认为 /
  • 第 2 部分中的 Content-Type 标注了第 4 部分的格式(任何想告诉服务器的信息除了数据都在这里) ,content-Length则代表的是反馈的内容大小:17931字节。
  • 第3部分为了区分2与4部分,永远都是一个回车(\n)
  • 第4部分代表要下载的内容

响应状态码 状态代码的第一个数字代表当前响应的类型:

  • 1xx消息——请求已被服务器接收,继续处理
  • 2xx成功——请求已成功被服务器接收、理解、并接受(200get,204post,表示创建成功)
  • 3xx重定向——需要后续操作才能完成这一请求 (301:网址已经搬走了;302:暂时搬走了,我还会回 来这里哒;)
  • 4xx请求错误——请求含有词法错误或者无法被执行(客户端错误)
  • 5xx服务器错误——服务器在处理某个正确请求时发生错误(网页发生错误)

用curl发出请求

语法:curl -s -v -H -- "https://www.baidu.com"(get请求动作)

语法:curl -X POST -s -v -H -- "https://www.baidu.com"(post请求动作)

用 Chrome 查看响应

  • 打开 Network
  • 输入网址
  • 选中第一个响应
  • 查看 Response Headers,点击「view source」,点击「view source」,点击「view source」
  • 你会看到响应的前两部分
  • 查看 Response 或者 Preview,你会看到响应的第 4 部分

一、请求 请求一般由以下四个部分组成:

  • 1 动词 路径 协议/版本
  • 2 Key1: value1
  • 2 Key2: value2
  • 2 Key3: value3
  • 2 Content-Type: application/x-www-form-urlencoded
  • 2 Host: www.baidu

参考

1.维基百科

2.《HTTP》 作者:Lichee_3be1 链接:www.jianshu.com/p/28f7251f4… 來源:简书

3.饥人谷教学