新手理解HTTP

本文目标:对HTTP形成初步概念

背景:我曾多次看讲HTTP的文章,有些写得非常优秀,但看完之后总是记不住,不知道HTTP为何物,因此在这里粗浅的总结下HTTP基本知识,偏向于理解和记忆,不做深入探讨。


HTTP是什么?

HTTP——超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP),首先是一个协议,类似我们日常所说的约定、合同是从服务器传输超文本到本地浏览器的传送协议,我个人更倾向于理解成服务器与浏览器之间的交流形式。

HTTP请求与响应

以下,我会以访问百度首页作为例子,说明如何在控制台查看请求(request)和响应(response)。

请求:

请求由四部分组成:

1,请求方法、URI、协议/版本

2,请求头

3,空行

4,请求体


在浏览器打开控制台(F12或者右键-检查),地址栏输入www.baidu.com,回车;

在控制台点击network选项;

切换到Network

在Headers里可以看到三个选项卡

请求(request)

点击view source;

请求头

至此,我们看到了对百度首页请求(结合 图HTTP请求与响应  查看),我们看到的是:

第一行:请求方法 路径 HTTP/版本号

第二行:请求首部字段(key:value)

注:空行看不到,此处无请求体

请求方法:

GET: 获取URL指定的资源;

POST:传输实体信息

PUT:上传文件

DELETE:删除文件

HEAD:获取报文首部,与GET相比,不返回报文主体部分

OPTIONS:询问支持的方法

TRACE:追踪请求的路径;

CONNECT:要求在与代理服务器通信时建立隧道,使用隧道进行TCP通信。主要使用SSL和TLS将数据加密后通过网络隧道进行传输。

路径:

eg :https://www.toutiao.com/ch/news_tech/

提到路径就不得不提我们常说的网址(URL——Uniform Resource Locator,统一资源定位符)。它的标准格式如下:

[协议类型]://[服务器地址]:[端口号]/[资源层级UNIX文件路径][文件名]?[查询]#[片段ID],以上例子中 /ch/news_tech/ 就是路径,根据它,网站服务器可以作出不同的回应。(进一步了解,请到维基百科:URL)

请求首部字段:

用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容。

空行:

空行的作用就是将请求中的第二部分和第四部分分开。

请求体:

一般只在POST方法中出现,用于上传内容,比如表单提交信息。


响应

1,状态行

HTTP/1.1 200 OK——协议/协议版本  状态码  状态描述

2,响应头

Content-Type:text/html——key:value

状态行与响应头

3,空行

将响应头和响应体分开

4,响应体

服务器对客户端的请求作出响应的主体部分。

到此HTTP的请求和响应都做了一个基本的介绍,以下简单介绍下用命令行对实现一些HTTP操作。


CURL命令行(常用)

1,抓取网页

curl  -o  www.baidu.com

2,自动跳转

curl  -L  www.baidu.com

3,显示头信息

curl  -i  www.baidu.com

4,显示通信过程

curl  -v  www.baidu.com

利用以上几个命令就可以在命令行中清楚的看到HTTP通信过程。

(由于HTTP深入的内容点非常广泛,想进一步了解,推荐一本书《图解HTTP》,想进一步了解CURL命令行,可查看阮一峰博客http://www.ruanyifeng.com/blog)

你可能感兴趣的:(新手理解HTTP)