http协议

协议:是一种规则或者规定
tcp/ip协议:规则了tcp客户端与tcp服务器数据的通讯格式
1.知识点是什么:http协议
2.知识点有什么:规定浏览器与服务器(tcp服务器)之间的数据通讯格式
3.请求的协议格式<客户端(浏览器)发数据给服务器>
GET /index.html HTTP/1.1 GET:请求的方式 /index.html:地址 HTTP/1.1:协议版本
4.响应<服务器发数据给客户端>

  

【tcp-服务器接收客户端请求之后发送数据】
  #响应的格式

    #1.响应头 #2.空行 #3.响应体
  # 1.响应头 "HTTP1.1P 版本", 200 ok:这个是状态
  header = "HTTP/1.1 200 OK \r\n" #200这个是状态
  header += "Content-type:text/html;charset=utf-8 \r\n" #解析中文
  header += "Content-Length: 5\r\n" #告诉浏览器显示多少个字符
  # 2.响应体
  body = "python10可"
  content = header + "\r\n" + body
  # 返回数据显示在网页上面
  client.send(content.encode("utf-8"))
注:如果存在返回图片数据,则需要返回两次,先返回文字编码,再返回二进制图片数据

  

http中的浏览器跟服务器

1.他们使用tcp套接字实现的

 

http流程

响应头格式

HTTP/1.1 状态 \r\n

响应的格式

响应头 http/1.1 200 ok \r\n
content-type:text/html;charset = utf-8;\r\n #显示中文
Content-Length: 10749显示内容的长度
空行 \r\n
响应体(返回数据的内容)

请求头的作用

告诉服务器我们请求地址
#根据不同的地址返回不同的网页内容
#拿到第一行
heads = data.splitlines()
#GET / HTTP/1.1:响应头原格式
heads_01 = heads[0]
#得到地址
match = re.match(r'[^/]+(/[^ ]*)', heads_01)
#用正则的group得到地址
file_name = match.group(1)

响应的作用

控制浏览器的显示

状态

200 ok 成功了
404 not found 页面不存在

302 found 跳转
304 没有权限
500 服务器挂了

  

 

HTTP协议(一)的更多相关文章

  1. HTTP协议系列(1)

    一.为什么学习Http协议       首先明白我们为什么学习HTTP协议,也就是说明白HTTP协议的作用.HTTP协议是用于客户端与服务器之间的通讯.明白了HTTP协议的作用也就知道了为什么要学习H ...

  2. 重温Http协议--请求报文和响应报文

    http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...

  3. 协议森林17 我和你的悄悄话 (SSL/TLS协议)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. TLS名为传输层安全协议(Transport Layer Protocol),这个协议是一套加密的 ...

  4. 协议森林16 小美的桌号(DHCP协议)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. DHCP协议用于动态的配置电脑的网络相关参数,如主机的IP地址,路由器出口地址.DNS域名服务器地 ...

  5. 简约之美Jodd-http--深入源码理解http协议

    Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架.简单,却很强大! jodd-http是一个轻巧的HTTP客户端.现在我们以一个简单的示例从源码层看看是如何实现的? Http ...

  6. 【JavaScript】javascript中伪协议(javascript:)使用探讨

    javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行. 比如下面这个死链接: <a href="javasc ...

  7. SNMP简单网络管理协议

    声明:以下内容是学习谌玺老师视频整理出来(http://edu.51cto.com/course/course_id-861.html) SNMP(Simple Network Management ...

  8. 海鑫智圣:物联网漫谈之MQTT协议

    什么是MQTT协议 MQTT(消息队列遥测传输协议)是IBM在1999年专门针对物联网等应用场景来制订的轻量级双向消息传输协议,它主要是为了解决物联网上使用到的设备的互相通信的问题,以及这些设备与后端 ...

  9. linux-图形化远程管理协议

    远程管理控制方式: RDP(remote desktop protocol)协议: telnet: SSH(Secure Shell): RFB(Remote FrameBuffer)协议(图形化远程 ...

  10. RTP与RTCP协议介绍(转载)

    RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...

随机推荐

  1. apktool动态破解apk

    那么今天我们就用另外一种方式来破解apk:动态方式,关于动态方式其实很广义的,因为动态方式相对于静态方式来说,难度大一点,但是他比静态方式高效点,能够针对更过的破解范围.当然动态方式很多,所以这里就分 ...

  2. Linux进程通信学习总结

    http://blog.csdn.net/xiaoweibeibei/article/details/6552498 SYSV子系统的相关概念   引用标识符:引用标识符是一个整数,表示每一个SYSV ...

  3. PS 图像特效-非线性滤波器

    利用非线性滤波器,使图像的色彩凝块,形成一种近似融化的特效. clc; clear all; addpath('E:\PhotoShop Algortihm\Image Processing\PS A ...

  4. ios中XMPP的搭建

    1 首先下载xmppframework这个框架 https://github.com/robbiehanson/XMPPFramework   2 环境配置 参考:https://github.com ...

  5. day08_Servlet学习笔记

     ============================================================ 一.什么是Servlet?(非常非常重要) servlet 是运行在 Web ...

  6. Docker 单主机网络

    PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 当容器逐步向容器集群,容器云技术演进的时候,一个不得不面对的问题就是各 ...

  7. 几个SQL命令的使用

    几个SQL命令的使用 [原创 2006-4-21 14:22:05]     字号:大 中 小 1.Update批量更改 例如:A.B两个表,A,B有相同字段id,现将B中的b_passerd覆盖掉A ...

  8. Kali Linux 工具使用中文说明书

    From: https://www.hackfun.org/kali-tools/kali-tools-zh.html 英文版地址:http://tools.kali.org/ 信息收集 accche ...

  9. .Net MVC5异步请求Entity Framework 无限循环解决方法

    .Net MVC5异步请求Entity Framework 无限循环解决方法 Entity Framework 存在一对多.多对多之间的关系,相互依赖,在返回JSON数据时往往会出现相互引用造成的无限 ...

  10. 爬取廖雪峰的python3教程

    从廖雪峰老师的python教程入门的,最近在看python爬虫,入手了一下 代码比较low,没有用到多线程和ip代理池 然后呢,由于robots.txt的限定,构建了一些user-agent,并放慢的 ...