入门:HTTP(一)

作者: 长鲸向南 | 来源:发表于2018-07-07 00:55 被阅读77次

互联网飞速发展,我们很难相信仅仅20几年前,也就是1990年,这一年 Tim Berners-Lee才 发明了用网址就能访问网页的办法,他发明了第一个网页、第一个浏览器和第一个服务器。

那么1990之前呢?人们的使用电脑只局限于不联网的工作和游戏,联网使用的最主要的就是email,所以1980年-1990年间,人们迫切的需要一种更好的上网方式,于是http在众多方案中脱颖而出,被大众所使用。

一、什么是HTTP

HyperText Transfer Protocol 超文本传输协议

HTTP的作用就是指导浏览器和服务器如何进行沟通。那么又是如何实现沟通的呢?随我来看~

image

如图所示,浏览器发起请求→服务器在80端口接收请求→服务器发出响应返回内容→浏览器负责下载响应内容。我们浏览器和服务器就是这样实现了交互沟通啦。

小tips:

1.80端口专门用来服务HTTP哒。

2、如下图这样的一个URL,主要就是以下几部分组成。

image

二、HTTP要求

1、发送请求的格式

第一部分:动词 路径 协议/版本
第二部分:key1 : value1
第二部分:key2 : value2
第二部分:key3 : value3
第二部分:Content-Type : application / x-www-form-urlencoded
第二部分:HOST:www.baidu.com
第二部分:User-Agent : Curl/7.54.0
第三部分:
第四部分:要上传的数据

  • 请求最多包含四部分,最少包含三部分,也就是第四部分可以空着

  • 第三部分永远都是一个回车(/n)我们需要它来清晰的划出三四部分的界限

  • 动词主要有GET(获取)、POST(上传)、PUT(整体更新)、PATCH(局部更新)、DELETE(删除)等

  • 这里的路径包括查询参数,但不包括锚点(什么是参数?什么是锚点?倒回去看看小tips)

  • 如果你没有写路径,那么路径就会默认为/

  • 第二部分的Content-Type标注了的第四部分的格式

  • 不按协议来,是会出错哒

2、如何使用chrome开发者工具查看HTTP要求呢?

a、打开Network

image

b、地址栏输入网址

image

c、点击Network,查看request,点击view source

image

d、这样我们就可以看到请求的前三部分了,如图所示就是GET请求的实例,我们可以对照着前面给出的标准再次理解一下。

image

e、如果你想看到请求的第四部分,那么在FormData或者Payload中查看

(一般上传数据,用到post请求时,是我们登陆时,需要输入用户名密码提交上去)

三、响应

我们的浏览器发出了请求,服务器自然就要响应,接下来我们就看看服务器如何响应?

1、响应的格式

第一部分:协议/版本号 状态码 状态解释
第二部分:key1 : value1
第二部分:key2 : value2
第二部分:Content-Length :17931
第二部分:Content-Type:txt/html
第三部分:
第四部分:要下载的内容

状态码要背,这是服务器对浏览器说的话

  • 1XX不常用

  • 2XX表示成功

  • 3XX一般是服务器叫你走开啦,比如301,意思是你所访问的已经永久的搬走了,比如302表示临时外出,过几天再回来,这不是叫你走开么~

  • 4XX一般是服务器对浏览器说你丫的错啦,比如404就是访问者出错了,可能网址输错了~

  • 5XX一般就是服务器自己出错啦,比如502,可能是服务器崩啦

  • 详细请看→维基百科

第二部分的Content-Type标注了第四部分的格式

3、用chrome查看响应

a、打开Network

b、地址栏输入网址

c、选中第一个响应

d、查看Response Headers,点击view source

image

e、这样我们就可以看到请求的前二部分了,是不是和我们的格式相同~

image

f、查看Response或者Preview,你会看到响应的第四部分。

image

注:GET要求和POST要求对应的响应可以一样,也可以不一样

响应的第四部分可以很长很长很长,比如Content-Length=17931

四、curl命令

那我们可不可以在命令行里实现这一切呢,当然可以,那就是curl命令。

curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。

我们输入

Curl -s -v -H "cy:XXX" -- "https:// www.baidu .com "

image

可以看到接着省城一大堆的代码,我们直接来到最下面就可以看到

image

我们可以看到这是GET请求,那么post请求呢?

输入:

Curl -XPOSt -s -v -H "cy:xxx" -- "https://www.baidu.com"

image

果然变成了post请求~

相关文章

  • HTTP入门(一)

    这篇是《图解HTTP》的读书笔记,这本书是一些比较浅显的概念,仅用来当做科普入门可以,内容基于HTTP/1.1。 ...

  • 入门:HTTP(一)

    互联网飞速发展,我们很难相信仅仅20几年前,也就是1990年,这一年 Tim Berners-Lee才 发明了用网...

  • 爬虫入门系列(六):正则表达式完全指南(下)

    爬虫入门系列目录: 爬虫入门系列(一):快速理解HTTP协议 爬虫入门系列(二):优雅的HTTP库requests...

  • 入门:HTTP入门

    问题 1.HTTP 请求包括哪些部分2.HTTP 响应包括哪些部分3.如何用Chrome开发者工具查看 HTT...

  • HTTP入门

    HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准。通过使用网页浏览器、网络爬虫或者其它的工具,客...

  • http入门

    http 简介 http 历史 1989, 蒂姆。伯纳斯-李在CERN发起 1999年6月,IETF(互联网工程小...

  • http入门

    一、URI 是什么 全程:统一资源标识符,俗称网址 URI 分为 URL 和 URN URN Google URN...

  • HTTP入门

    基本概念 三个基本概念 URI:统一资源资源标志符(Uniform Resource Identifier) HT...

  • HTTP入门

    博主最近在复习HTTP,之前用书主要是《计算机网络》谢希仁版本和上野宣的《图解HTTP》,最近结合网上博客,进行复...

  • http入门

    一,http请求包括: 1 动词 路径 协议/版本 2 Key1: value1 2 Key2: value2 2...

网友评论

    本文标题:入门:HTTP(一)

    本文链接:https://www.haomeiwen.com/subject/foeiuftx.html