Http协议的简单介绍

http协议是在应用层上的一个协议,用浏览器打开一个网址,大多使基于http协议来传输的。

1.我们需要认识啥是URL

  • 在我们中俗称的网址就是一个URL,我们https://www.baidu.com/,这个https就是网站所使用的协议。www.baidu.com就是域名,和ip地址等价,而这里面一般是隐含着一个端口号。
  • https://www.baidu.com/s 最后面的s相当于在服务器上获取/s这样的文件,并且显示在浏览器上。是访问服务器上具体的资源(path),URL中对应的path不同的时候,所获取的页面也是不同的。
  • URL中的ip地址来去欸的那个一个服务器,URL中的服务器端口来确定这个主机上有那些进程,URL中的path来确定这个进程中所管理的那个资源
  • 但是https://www.baidu.com/
    scl=3
    &tn=baidutop10
    &fr=top1000
    &wd=%E5%8C%97%E4%BA%AC%E7%8E%B0%E6%
    我们其中随便点开一个网址是这样的,其实这个就是查询字符串,每一个网站上的查询字符串是不同的,用&来将这些键值对分割开来,键和值用=分割开来,但我们是无法从这些键值对了解到我们所要搜索的的具体内容,但是我们所要搜索的东西在运行的时候就会转义成这种键值对。这是基于unlencode来进行转义的,把URL中的包含的特殊符号进行了转义,转义成功了%+十六进制数字的形式,但是URL中包含了一些特殊用途的符号(/ & ? #…),这些特殊符号是无法转移的。urldecode是unlencode的逆向操作,具体如何操作我们不去深究。
  • URL并不是http专用的,可以搭配很多种协议来使用

大家可以用抓包工具去抓几个包试试看看http协议是啥样子,然后再看这个格式。

2 http请求格式

  • 首行
    a)有一个方法GET
    b)URL
    c)http协议的版本号

  • 协议头(header)
    有若干的个键值对,键和值之间使用“: ”(冒号+空格)来分割,可以是用户自定义的,但大部分是http中已有的,并且具有特定含义。

  • 空行
    header的结束标志

  • 正文(body)
    可能是空(GET),也可能是非空(POST)

3 http响应

  • 首行
    a)版本号
    b)状态码
    c)状态的码的描述信息

  • 协议头(header)

  • 空行

  • 正文(boday)
    响应的正文中最常见的数据格式为html。

4 http方法
在这里插入图片描述
get和post的区别就是
get一般把数据放入到URL中,而post把数据放入正文body中。

5.状态码(一般大概分为五种)

  • 1XX 信息状态码,接受的请求正在处理
  • 2XX 成功状态码,请求正常处理完毕
  • 3XX重定向状态码,需要进行附加操作来完成请求,相当于打电话的“呼叫转移”
  • 4XX客户端错误状态码,服务器无法处理请求,这举个非常常见的例子404 Not Found
  • 5XX服务器错误状态码,服务器处理请求出错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值