Http协议

Http协议

1.1 什么是Http协议

  http协议:浏览器客户端和服务器端之间数据传输的格式规范
http协议
http协议详情
tcp/ip: 安全,发送不成功,重发。
UDP:速度快,广播
tcp/ip:关注的是数据是否传输成功
http:关注的是数据是否传输成功+在tcp/ip协议上封装的一层协议+关注的是数据传输的格式是否规范

1.2 telnet模拟HTTP请求

  telnet:用于远程登录的命令
    telnet 主机地址(localhost) 端口 8080 –>telnet localhost 8080(/n) –>ctrl+] (为看到回显的文字)
telnet查看请求响应

1.3 Http 请求

GET /myweb/hello HTTP/1.1  -->请求行
//接下来的都是请求头
Accept: text/html, application/xhtml+xml, image/jxr, */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN
Connection: Keep-Alive
Cookie: JSESSIONID=FAE01B7A35FF7CF278364FE4A92CF329
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
                          -->一个空行
1.3.1 请求行 GET /myweb/hello HTTP/1.1

  Http 协议版本
    HTTP/1.0:当前浏览器客户端与服务器端建立连接后,只能发送一次请求,一次请求后关闭(telnet中模拟为遗失对主机的连接)
对最简单的 GET / HTTP/1.0
HTTP/1.0
    HTTP/1.1:当前浏览器客户端与服务器端建立连接后,可以在一次连接中发送多次请求(基本都是用HTTP/1.1)
对最简单的 GET / HTTP/1.1
HTTP/1.1
  请求资源
    URL:统一资源定位符 http://localhost:8080/myweb/hello 只能定位互联网资源是URI的子集
    URI:统一资源标识符 /myweb/hello 用于标记任何资源,可以使本地资源文件系统,也可以是局域网资源,互联网资源。
    请求方式
      常见请求方式:GET POST HEAD TRACE PUT CONNECT DELETE
      常用请求方式:GET POST
      表单提交:

<form method="GET/POST" action="提交处理地址">
</form>
GET VS POST

  GET方式提交
    1)地址栏(URI)会跟上参数数据,以?开头多个参数以&分割

<form class="layui-form" action="login.do" method="get">
                                <h2>用户登录</h2>
                                <div class="layui-input-block" style="width: 300px; margin: 200px auto; border: 2px solid gray; ">
                                    <input class="layui-input" type="text" name="username" placeholder="用户名" required="" autofocus=""/><br/><br/>
                                    <input class="layui-input" type="password" name="password" placeholder="密码" required="" autofocus=""/><br/>
                                    <input id="login" class="layui-btn" type="submit" value="登录"/>
                                </div>
                    </form>

登录界面
登录界面
GET 方式提交后 地址栏变化
GET方式提交后的地址栏变化

    2)GET提交参数数据有限制,不超过1KB.
    3)GET方式不适合提交敏感密码
    4)注意:浏览器直接访问的请求,默认方式是GET方式
  POST方式提交
    1)参数不会跟着URI后面,参数而是跟在请求的实体内容中,没有?开头,多个参数以&分割
    2)POST提交的参数数据没有限制
    3)POST方式提交敏感数据
  另外,还有另一个非功能层面上的考虑,但其实也是HTTP当初在设计师区分GET和POST的目的之一,就是按请求是否为等幂操作来决定使用GET或POST。所谓是否为等幂操作,就是请求的操作是否改变服务器状态,同一个操作操作数次,是否传回同样的结果。
   GET请求应该用于等幂操作(GET请求纯粹取得资源)
   POST请求应该用于非等幂操作(POST请求可能会影响服务器上的数据或状态)

好困,未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值