美文网首页
HTTP协议

HTTP协议

作者: Mokingc | 来源:发表于2019-11-05 15:11 被阅读0次

HTTP协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议


HTTP发展

  • HTTP 1.0 RFC-1945
  • HTTP 1.1 RFC-2616 持续请求
  • HTTP 2.0 RFC-7540 加密、头部压缩、服务器推送、管线操作、多路复用
  • HTTPS RFC-2818 安全协议

HTTP工作原理

HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:

(1)客户与服务器建立连接;

(2)客户向服务器提出请求;

(3)服务器接受请求,并根据请求返回相应的文件作为应答;

(4)客户与服务器关闭连接。

状态码:

  • 1xx消息——请求已被服务器接收,继续处理
  • 2xx成功——请求已成功被服务器接收、理解、并接受
  • 3xx重定向——需要后续操作才能完成这一请求
  • 4xx请求错误——请求含有词法错误或者无法被执行
  • 5xx服务器错误——服务器在处理某个正确请求时发生错误

请求方式

  • GET 获取
    数据放在url里面传输
    容量小于32k
  • POST 发送数据
    容量大

网址组成

1、协议      http, https(https 是加密的 http)
2、主机      g.cn  zhihu.com之类的网址
3、端口      HTTP 协议默认是 80,因此一般不用填写
4、路径      下面的「/」和「/question/31838184」都是路径

协议

  • 一个传输协议,协议就是双方都遵守的规范。
    • 1、浏览器(客户端)按照规定的格式发送文本数据(请求)到服务器
    • 2、服务器解析请求,按照规定的格式返回文本数据到浏览器
    • 3、浏览器解析得到的数据,并做相应处理
  • 请求和返回是一样的数据格式,分为4部分:
    • 1,请求行或者响应行
    • 2,Header(请求的 Header 中 Host 字段是必须的,其他都是可选)
    • 3,\r\n\r\n(连续两个换行回车符,用来分隔Header和Body)
    • 4,Body(可选)3、浏览器解析得到的数据,并做相应处理
  • 请求的格式,注意大小写(这是一个不包含Body的请求):

  • 原始数据如下
    'GET / HTTP/1.1\r\nhost:g.cn\r\n\r\n'

  • 打印出来如下
    GET / HTTP/1.1
    Host: g.cn

  • 其中

    1, GET 是请求方法(还有POST等,这就是个标志字符串而已)
    2,/ 是请求的路径(这代表根路径)
    3,HTTP/1.1  中,1.1是版本号,通用了20年
    具体字符串是 'GET / HTTP/1.1\r\nhost:g.cn\r\n\r\n'
    
    返回的数据如下:
    HTTP/1.1 301 Moved Permanently
    Alternate-Protocol: 80:quic,p=0,80:quic,p=0
    Cache-Control: private, max-age=2592000
    Content-Length: 218
    Content-Type: text/html; charset=UTF-8
    Date: Tue, 07 Jul 2015 02:57:59 GMT
    Expires: Tue, 07 Jul 2015 02:57:59 GMT
    Location: http://www.google.cn/
    Server: gws
    X-Frame-Options: SAMEORIGIN
    X-XSS-Protection: 1; mode=block
    
    
  • 其中响应行(第一行):

    1,HTTP/1.1 是版本
    2,301 是「状态码」,参见文末链接
    3,Moved Permanently 是状态码的描述
    浏览器会自己解析Header部分,然后将Body显示成网页
    

相关文章

网友评论

      本文标题:HTTP协议

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