美文网首页
关于HTTP

关于HTTP

作者: jackie季 | 来源:发表于2018-07-18 20:16 被阅读0次

    HTTP(HyperText Transfer Protocol):它是一个服务器(Server)客户端(Client)之间请求与响应的标准,客户端发起一个HTTP请求,服务器端默认在80端口进行接收,然后服务器返回响应内容,客户端再下载响应内容;

    在这里,HTTP就起到了一个指导双方如何沟通的作用,比如客户端输错一个网址字母,服务器端返回404告诉你没有找到这个网址;服务器宕机了,会返回500告诉你服务器无法处理请求;

    下面我们来做一个HTTP请求与响应的示例:

    打开bash,我们通过curl来创造请求(curl是一种利用URL语法在命令行方式下工作的开源文件传输工具),输入命令:curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"

    这相当于用get方式发送了一个请求,请求的内容为:

    GET / HTTP/1.1

    Host: www.baidu.com

    User-Agent: curl/7.54.0

    Accept: */*

    Frank: xxx

    输入命令: curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"

    这相当于用post方式发送了一个请求,请求的内容为:

    POST / HTTP/1.1

    Host: www.baidu.com

    User-Agent: curl/7.54.0

    Accept: */*

    Frank: xxx

    Content-Length: 10

    Content-Type: application/x-www-form-urlencoded

    1234567890

    所以,请求格式就包含以下几个部分:

    1 动词 路径 协议/版本

    2 key : value

    3 空行

    4 上传的数据

    注意:a. 请求最多包含四部分,最少三部分,也就是第四部分可以没有

    b. 动词包括 get,post,put(整体更新),patch(局部更新),delete(删除)

    c. 路径包含查询字符串,不包含锚点,不写默认为“/”’

    d. 第二部分的Content-Type标注了第四部分的数据格式

    e. 第三部分永远为空

    下面我们通过Chrome来发送请求:

    1.打开 Network

    2.地址栏输入网址

    3.在 Network 点击,然后查看 Request Headers,点击「view source」就看到了请求内容

    响应

    上面第一个请求示例所得到响应内容是:

    HTTP/1.1 200 OK

    Accept-Ranges: bytes

    Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform

    Connection: Keep-Alive

    Content-Length: 2443

    Content-Type: text/html

    Date: Tue, 10 Oct 2017 09:14:05 GMT

    Etag: "5886041d-98b"

    Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT

    Pragma: no-cache

    Server: bfe/1.0.8.18

    Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

    <!DOCTYPE html> 后面省略......

    所以响应内容的格式就是:

    1 协议/版本 状态码 状态解释

    2 key : value

    3 空行

    4 客户端要下载的内容

    再回到刚才的Chrome页面,查看 Response Headers,就可以看到响应内容

    对于响应内容中的HTTP状态码,它的第一位数字就代表了响应的状态

    1XX:表示服务器已接受请求,但需要继续处理,HTTP协议中未定义,所以禁止服务器使用

    2XX:表示成功;200 OK :请求已成功,请求所希望的响应头或数据体将随此响应返回;

               204 No Content:服务器成功处理了请求,没有返回任何内容

    3XX:表示重定向,重定向目标会在本次响应的Location域中指明;301代表资源永久移走,302代表临时移走

    4XX:表示客户端错误;401,403,404

    5XX:表示服务器错误;500,502

    详细内容请访问 https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81

    相关文章

      网友评论

          本文标题:关于HTTP

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