zoukankan      html  css  js  c++  java
  • http

    为什么需要协议,因为服务端和客户端通信需要统一的规则,否则无法正确获取到对方发送的信息.

    没有请求协议,服务端拆不开请求的数据,
    没有响应协议,浏览器拆不开响应的数据.
    其实浏览器和服务端.彼此发的就是一堆字符串,只不过是有个有格式的字符串.

      这个有格式的字符串就是:

    请求首行(一定要有)说明GET请求,请求路径,GET发来的数据,协议类型和办法等等等等 
            General:
                Request URL: https://www.baidu.com/
                Request Method: GET
                Status Code: 200 OK
                Remote Address: 111.13.100.92:443
                Referrer Policy: no-referrer-when-downgrade
                
        请求头(不一定要有.用来描述更多的请求信息,也可以自定义请求头,只要按照规定的格式例如name:alex
            RequestHeaders:
                Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
                Accept-Encoding: gzip, deflate, br
                Accept-Language: zh-CN,zh;q=0.9
                Connection: keep-alive
                Cookie: BAIDUID=BE6E148AD89670194AA8166CC1517874:FG=1; BIDUPSID=BE6E148AD89670194AA8166CC1517874; PSTM=1541348839; BD_UPN=12314753; BDUSS=9vMmdrZ3p
                Host: www.baidu.com
                Upgrade-Insecure-Requests: 1
                User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
                ------------
                ***contentType:说明请求体的编码类型. 默认为urlencodeed,如果是json需要说明contentType:json,
                ***userAgent告诉浏览器请求者的相关信息如windosw操作系统,chrome浏览器,)
                    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
        响应头:
            ResponseHeaders:
                Bdpagetype: 2
                Bdqid: 0x9a4dff190000efd3
                Cache-Control: private
                Connection: Keep-Alive
                Content-Encoding: gzip
                Content-Type: text/html;charset=utf-8
                Date: Sat, 24 Nov 2018 19:20:11 GMT
                Expires: Sat, 24 Nov 2018 19:20:10 GMT
                Server: BWS/1.1
                Set-Cookie: BDSVRTM=327; path=/
                Set-Cookie: BD_HOME=1; path=/
                Set-Cookie: H_PS_PSSID=26523_1463_21088_26350; path=/; domain=.baidu.com
                Strict-Transport-Security: max-age=172800
                Transfer-Encoding: chunked
                X-Ua-Compatible: IE=Edge,chrome=1
            
        请求体:只有post请求才有请求体,get请求没有请求体,get的请求内容放在请求头中.所以contentType在poset请求的时候才有意义.
    View Code

    wsgi模块:  

    wsgi模块功能是拆包和封包

    拆包只拆urlencodeed类型的请求数据, 它把请求数据拆成字典放在request.POST里面,  如果是json格式的就不管, 要自己取reqeust.body获取.再解码反序列化.
    所以请求来的时候先获取数据: request.body = 'json的序列化数据',
    urlencodeed类型--->拆包后放在reques.POST中
    json类型--->不管, 要自己去request.body中取再解码和反序列化.

  • 相关阅读:
    h5网页跳转到app,若未安装app,则跳转app下载页面
    移动端虚拟键盘影响页面布局的问题
    meta标签常用设置
    关于click的多次触发问题(冒泡事件)
    回溯法求解迷宫问题
    记一次MYSQL更新优化
    shell知识点小结
    PHP预定义接口
    【翻译自nikic大神】PHP中原生类型的方法
    找女神要QQ号码
  • 原文地址:https://www.cnblogs.com/dingyunfeng/p/10509047.html
Copyright © 2011-2022 走看看