Python高级——多线程_09_Http协议

浏览器访问服务器过程

DNS解析-->建立连接-->发起请求-->回复响应

 

url:

概念:网络资源地址

协议--域名--资源路径  三部分组成

域名

本质是IP地址

DHCP服务器(动态主机配置协议)

给局域网中计算机自动分配IP

DNS(domain name service)

用于返回域名对应的IP地址

 

 

Http协议

概念:浏览器和服务器传输数据格式协议  基于TCP协议实现

作用:规定浏览器和服务器之间数据通信格式

TCP/IP:模型

应用层:    HTTP FTP

传输层        TCP   UDP

网路层        IP

网络接口

工作模式:request-请求 response-响应

 

通信过程(查看方式)

谷歌/火狐--f12-->Network-->

Request Headers[请求] 

Response Headers[响应状态]

Response [响应体]

 

请求报文格式

请求行

    a)请求方法:GET 向获取服务器获取资源  Post 向服务器上传资源

    b)资源路径:

            \index.html  或者是 \  根据网址判断

    c)协议部分:1.1通用版本

 

请求头:Request Headers  形式: (名字:值)

    a)Host:主机身份

        标识本次请求的服务器身份 或者是IP地址:[端口号]

    b)Connection:keep-alive

        长连接<keep-alive 保持存活>  端连接<close 关闭>

    c)User-Agent: 

        用户代理 标识浏览器身份

        Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36

                1.爬虫时,设置header=的值,可模拟浏览器读取 2.开发多个版本网页-适配

    d)Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

        接收 文件类型

    e)Accept-Encoding: gzip,default

        可接收的压缩方式

        降低网络传输带宽    -->    提供传输速度

        缺点:加重CPU使用率

    f)Accept-Language: zh-CN,zh;q=0.9

        可以接收的语言<编码>

总结:

    请求行【方法    资源路径    版本 \r\n】

    请求头【名称:值\r\n】    请求头可以有多个

    \r\n 空行    

    请求体 【浏览器向服务器上传的数据】

    GET方法请求一般不带请求体 POST可以带请求体

 

    

响应报文格式

    响应报文<服务器    回送给浏览器的数据>

    响应行:HTTP/1.1 200 OK

            1.版本

            2.状态

                    2xx    成功  ok             200    

                    3xx    重定向                302/307

                    4xx    客户端报错          404    Not  Found

                    5xx    服务器端报错       503    服务不可用

    响应头    头名:值

    a)Connection:keep-alive

        长连接<keep-alive 保持存活>  端连接<close 关闭>

    b)Date:Ture 11 Sep 2018 03:46:26 GMT

        默认为格林威治时间    与北京时间相差8小时

    c)Expires:Ture 11 Sep 2018 02:46:26 GMT

        过期时间

    d)Sercver:  BWS/1.1

        服务器后台程序<应用程序>身份

        通用:Nginx web服务器

    e)Conntent-Encoding: gzip

        内容-(实体 - 根据头部报文决定标识 请求体/响应体 )压缩方式

        浏览器接收头部数据时,可以解压响应体数据(当浏览器和服务器的压缩方式不同时,数据不压缩)

    f)Conntent-type: txt/html

        实体文件类型

        浏览器可以根据该头部解析对应的响应体数据

    g)Conntent-Length:1207

        实体长度

        根据对应长度接收对应长度数据作为响应体

    h)Conntent-x

        实体头部 可用在请求报文中

 

总结:

    响应行[版本    状态码    说明\r\n]

    响应头[名称:值\r\n]

    响应体[服务器发给浏览器发送的数据]

 

长连接与短连接

长:keep-alive

短:close

 

短--缺点:套接字需要大量创建和销毁【用户体验差】    优点:管理简单,所有连接都是有效存在

长--缺点:占用资源大【可能导致服务器崩溃】               优点:体验感好,无需重复创建连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值