美文网首页
http协议简介

http协议简介

作者: 小敢敢不憨a | 来源:发表于2021-07-29 09:22 被阅读0次

    什么是http

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

    2.HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80

    3.http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议

    二、请求报文

    1.HTTP请求报文主要由请求行、请求头部、空一行、请求正文4部分组成

    (当然,如果不算空的一行,那就是3个部分)

    2.下图是fiddler工具抓的post请求报文(工具使用看fiddler篇),可以对照上图,更清楚的理解http的请求报文内容。

    响应报文

    1.HTTP响应报文主要由状态行、消息报头、空一行、响应正文4部分组成

    (当然,如果不算空的一行,那就是3个部分)

    2.下图就是一个请求的响应内容,用fiddler抓包工具可以查看

    完整的http内容

    1.一个完整的http协议其实就两块内容,一个是发的请求,一个服务端给的响应。

    2.以下是请求https://github.com/timeline.json 这个地址后,用fiddler抓包导出为文本,查看完整的http请求内容。(具体操作查看《fiddler 1.10会话保存》)

    3.内容如下:

    以下是请求报文

    GET https://github.com/timeline.json HTTP/1.1

    Host: github.com

    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

    Accept-Encoding: gzip, deflate, br

    Cookie: xxx(已省略)

    以下是请求报文

    GET https://github.com/timeline.json HTTP/1.1

    Host: github.com

    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

    Accept-Encoding: gzip, deflate, br

    Cookie: xxx(已省略)

    X-Request-Id: d09e199dc290c6f0dc79fe49007069ab

    X-Runtime: 0.004161

    Content-Security-Policy: xxx(已省略)

    Strict-Transport-Security: xxx(已省略)

    X-Content-Type-Options: nosniff

    X-Frame-Options: deny

    X-XSS-Protection: 1; mode=block

    X-Runtime-rack: 0.007388

    X-GitHub-Request-Id: FE36:2B0A9:177175F:23C092D:594FD998

    以下是响应正文(json格式)

    {“message”:”Hello there, wayfaring stranger. If you’re reading this then you probably didn’t see our blog post a couple of years back announcing that this API would go away: http://git.io/17AROg Fear not, you should be able to get what you need from the shiny new Events API instead.”,”documentation_url”:”https://developer.github.com/v3/activity/events/#list-public-events”}

    请求行

    8种请求方法

    1.请求行有三个主要参数:请求方法、url、协议版本。


    请求方法包含:

    注意:

    1)方法名称是区分大小写的。

    2)最常见的的就是通常说的get和post方法。

    url详解

    1.打开百度,在搜索框输入任意文字,搜索后,复制地址栏的url地址:

    https://www.baidu.com/s?wd=%E4%B8%8A%E6%B5%B7%E6%82%A0%E6%82%A0%E5%8D%9A%E5%AE%A2&rsv_spt=1&rsv_iqid=0x91baaabd00070ba2&issp=1&f=8&rsv_bp=1&rsv_idx=2

    2.那么一个完整的url地址,基本格式如下:

    https://host:port/path?xxx=aaa&ooo=bbb

    (1)http/https:这个是协议类型,如图中1所示

    (2)host:服务器的IP地址或者域名,如图中2所示

    (3)port:HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如:192.168.3.111:8080,这里的8080就是端口

    (4)path:访问资源的路径,如图中3所示/s (图中3是把path和请求参数放一起了)

    (5)?:url里面的?这个符号是个分割线,用来区分问号前面的是path,问号后面的是参数

    (6)url-params:问号后面的是请求参数,格式:xxx=aaa,如图4区域就是请求参数

    (7)&:多个参数用&符号连接

    协议版本

    根据HTTP标准,HTTP请求可以使用多种请求方法。

    HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。

    HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

    相关文章

      网友评论

          本文标题:http协议简介

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