入门: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(一)

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