HTTP协议以及curl命令


一.HTTP协议简介
       关于网络协议,我们最常见的就是浏览器地址栏上的http,全称是HyperText Transfer Protocol,也就是超文本传输协议,是互联网上应用最广泛的一个网络协议,HTTP的作用是指导浏览 器和服务器如何进行沟通,这是一个统一的标准,所有的万维网文件都要遵循这个标准。
         而相互通信,就必须有请求和响应,我们可以通过命令行发起请求以及响应,可以看到请求以及响应的反馈,也可以通过浏览器通过F12查看请求以及响应的详细信息。

二.HTTP的请求和HTTP响应

1.HTTP请求:

        指的是从客户端发起请求,服务器响应,主要包括三部分,有一部分可以为空,所以也可以是四部分:

       第一部分是请求方法URL协议/版本,通俗讲就是动词 路径 协议/版本,请求分为GET和POST,PUT PATCH DELETE HEAD OPTIONS目前我们主要掌握前两种,GET用来获取,而POST提供上传 ,在第一部分中,这两种请求的内容是不同的,下面举例,GET / HTTP1.1 或者 POST / HTTP1.1。
         第二部分是主要是由一些键值对以及Content-Type和Host以及User-Agent组成,Content-Type标注了第四部分的格式,当然有时候s第四部分是空的。
         第三部分是一个回车,用来和下一部分进行区分。
         第四部分就是要上传的数据。

         下面介绍一些如何在Chrome中查看HTTP的请求内容,点击F12点击NetWork左边的name栏或显示很多接口,我们点击需要查看的,就会看到三栏,General,ResponseHeaders,RequestHeader,点击qrquest,右边有view source,只有点击了这个键,才能看到我们熟悉的请求格式,如果有请求的s第四部分,下方有FormData和Payload,点击即可看到第四部分。

2. HTTP响应
        我们发起请求之后会得到一个响应,响应是对应于请求的,响应的格式也有四部分:
         第一部分是协议/版本号 状态码 状态解释。
         第二部分是键值对以及Content-length,content-type,这是标注第四部分格式的,且遵循MIME规范。
         第三部分依然是一个空格。
         第四部分可以很长很长,GET请求和POST请求对应的响应h可以一样,也可以不一样,第一部分的状态码是需要记住的,这是服务器对浏览器说的话,1开头的表示不常用,2开头的表示成功,3开头的表示不需要,4开头表示发起者错误,5开头表示服务器错误。

  在Chrome中查看响应和查看请求步骤类似,区别在于我们点中响应的接口,查看的是ResponseHeaders,不要忘记点击view source,这样我们才能看到我们能认识的格式,第四部分在preview或者response中查看。

HTTP协议以及curl命令_第1张图片


HTTP协议以及curl命令_第2张图片

三.curl命令的使用

        curl用来‘从server传输数据’或者‘传输数据到server’,支持多种协议(HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or FILE)。
        curl提供了大量有用的技巧像  proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies,  file  transfer  resume and more。
        curl由libcurl支持完成transfer-related(传输相关)的功能。

        为了更好的了解HTTP请求与响应,我们可以用curl命令进行学习。

         curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。

      curl的格式是curl 请求和参数,在课上我们主要用到了

      curl -s -v -H "xiedaimala: xxx" -- "https://www.baidu.com"

HTTP协议以及curl命令_第3张图片

      curl -X POST -s -v -H "xiedaimala: xxx" -- "https://www.baidu.com"

HTTP协议以及curl命令_第4张图片

      curl -X POST -d "1234567890" -s -v -H "xiedaimala: xxx" -- "https://www.baidu.com"

HTTP协议以及curl命令_第5张图片

      这三条指令,我们可以看到,需要上传时候我们要加POST参数,以及上传的信息,而后面的网址是我们要请求的服务器,在我们发起请求之后,在命令行窗口中可以看到请求和响应。

你可能感兴趣的:(jirengu)