一、http协议实战

1.URL(Uniform Resource Located)

(1)使用FFTP的URL,例如:ftp://rtfm.mit.edu

(2)使用HTTP的URL,例如:http://www.baidu.com

2.HTTP工作原理

(1)浏览器分析超i链接中的URL

(2)浏览器向DNS请求解析网站的IP地址

(3)DNS将解析出的IP地址返回浏览器

(4)浏览器与服务器建立TCP连接(80端口)

(5)浏览器请求文档:GET/index.html

(6)服务器给出响应,将文档index.html发送给浏览器

(7)释放TCP连接

(8)浏览器显示index.html中的内容

3.持久连接和非持久连接

4.无状态性

是指同一个客户端(浏览器)第二次访问同一个Web服务,服务器无法知道这个客户端曾经访问过。HTTP的无状态性简化了服务器的设计,使其更容易支持大量并发的HTTP请求。

5.HTTP报文结构:(1)请求报文;(2)返回报文;(3)请求报文的方法;(4)响应报文中的状态码;(5)首部字段或消息头;(6)报文结构实例。

6.请求报文:即从客户端(浏览器)向Web服务器发送的请求报文,报文的所有字段都是ASCII码

{

方法  URL   版本   CRLF

首部字段名   值   CRLF

首部字段名   值   CRLF

.....

.....

首部字段名   值  CRLFsho

CRLF

实体主体(Entity body)

}第一行是请求行,例如:GET/index.html/1.1

首部行:用来说明浏览器、服务器或报文主体的一些信息/

如:

HOST:www.sxtyu.com

Connection:close

User:Agent:Mozilla/5.0

Accept-Language:cn

7.接收报文

{

版本   状态码   短语   CRLF

首部字段名    值   CRLF

首部字段名   值   CRLF

.....

.....

首部字段名   值  CRLFs

CRLF

实体主体(Entity body)

}

第一行是状态行​,如:HTTP/1.1   200    OK

首部行:用来说明浏览器、服务器胡总和报文主体的一些信息。​如:

Date :Wed 08 May 2008  22

Sever:Apach/1.3.2(Unix)

Content0Length:

DateDaDat4096

Content-Type:text/html

7.请求报头的方法

方法是对所有请求对象所进行的操作,也就是一些命令,请求报文中的操作有:

GET       ​请求读取一个Web页面    HEAD   请求读取一个Web页面的首部

POST     附加一个命名资源(如Web页面)

PUT       请求存储一个Web页面

DELETE  删除Web页面

TRACE   用于测试,要求服务器送回收到的请求

CONNECT  用于代理服务器

OPTION   查询特定选

8.响应报文中状态码

1xx      ​含义:通知信息​;例如:100=服务器正在处理客户请求

2xx      含义:成功;例如:200=请求成功(OK)

3xx​      含义:重定向​;例如:301=页面改变了位置

4xx      含义:客户错误​;例如:403=​禁止的页面;404=页面未找到

5xx      含义:服务器错误;例如:500=服务器内部错误;503=以后再试

具体各个状态码的含义,请参考W3C的HTTP1.1标准规范RFC2616

http://www.w3.org/Protocols/rfc2616/rtc2616.html

五、源码

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Python连载58-http协议简介的更多相关文章

  1. Python 爬虫与HTTP协议简介

    爬虫的实际例子: 搜索引擎(百度.谷歌.360搜索等). 伯乐在线. 惠惠购物助手. 数据分析与研究(数据冰山知乎专栏). 抢票软件等. 什么是网络爬虫: 通俗理解:爬虫是一个模拟人类请求网站行为的程 ...

  2. Python连载6-time包函数简介

    一.接连载5中time模块 1.函数:altzone (1)含义:获取当前时间与UTC时间相差的秒数,再有夏令时的情况下. (2)格式:time.altzone 2.函数:daylight (1)含义 ...

  3. python接口自动化1-http协议简介

    前言 知道接口测试的小伙伴都应清楚http协议了,如果你还不清楚,那么接口测试做不好,自动化接口就更做不好了.那么做接口测试前先了解下http: HTTP协议(HyperText Transfer P ...

  4. python 全栈开发,Day66(web应用,http协议简介,web框架)

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  5. web应用,http协议简介,web框架

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  6. [转帖]socks5 协议简介

    socks5 协议简介 http://zhihan.me/network/2017/09/24/socks5-protocol/ 什么是socks5 或许你没听说过socks5,但你一定听说过Shad ...

  7. web应用,http协议简介,web框架

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  8. Fiddler--一、HTTP协议简介

    在学习Fiddler之前,最好先学习一下HTTP协议. HTTP协议简介 什么是HTTP协议 超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端 ...

  9. MODBUS-RTU通讯协议简介

    MODBUS-RTU通讯协议简介   什么是MODBUS? MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司 的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规 ...

  10. JavaWeb:Web与HTTP协议简介

    JavaWeb:Web与HTTP协议简介 Web的概念 什么是Web: Web是网络上使用最广泛的分布式应用架构. 旨在共享分布在网络上的各个Web服务器中的所有互相连接的信息. 三个特征: 用HTM ...

随机推荐

  1. 在ensp上模拟企业网络场景并Access接口加入相应VLAN

    模拟的企业网络大概描述: 公司内网是一个大的局域网,二层交换机S1放置在一楼,在一楼办公的部门有IT部和人事部:二层交换机S2放置在二楼,在二楼办公的部门有市场部和研发部.由于交换机组成的是广播网,交 ...

  2. day 37 CSS

    参考博客:https://www.cnblogs.com/majj/p/9021419.html 1.CSS的三种链接样式: 行内链接(优先级最高) 内接样式 外接样式 <html lang=& ...

  3. 在.NET Core中使用Jwt对API进行认证

    在.NET Core中想用给API进行安全认证,最简单的无非就是Jwt,悠然记得一年前写的Jwt Demo,现在拿回来改成.NET Core的,但是在编码上的改变并不大,因为Jwt已经足够强大了.在项 ...

  4. Xtrabackup 增量备份 和 增量还原

    目录 测试数据准备 进行全量备份 第一次增量插入一条数据 进行第一次增量备份 注意 第二次增量插入一条数据 进行第二次增量备份 注意 查看xtrabackup_binlog_info中的binlog位 ...

  5. X86架构CPU常识(主频,外频,FSB,cpu位和字长,倍频系数,缓存,CPU扩展指令集,CPU内核和I/O工作电压,制造工艺,指令集,超流水线与超标量)

    1.主频 主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度. CPU的主频=外频×倍频系数.很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差. ...

  6. 使用 colgroup 和 col 实现响应式表格

    Table 在项目使用中十分频繁,特别是在后台管理系统中,table 无疑是数据展示的第一公民,在早些年的网页中,table 也是网页布局的第一选择,然后使用好 table 并不容易,其它有很多子元素 ...

  7. 创建raid10(五块磁盘)

    创建raid10(五块磁盘) Raid10(5块磁盘) 上一个bolg已经做了raid5(3 个raid. 2个备份),在此条件下继续以下步骤: 1.先将磁盘系统卸载  2.看系统挂载里是否还有md0 ...

  8. 17-Python执行JS代码--PyExecJS、PyV8、Js2Py

    一.Python执行JS代码--PyExecJS.PyV8.Js2Py 1.1.PyExecJS PyExecJS的优点是您不需要照顾JavaScript环境.特别是,它可以在Windows环境中运行 ...

  9. 升级xcode10.0, 终端运行 运行报错:Print: Entry, “:CFBundleIdentifier”, Does Not Exist

    目录 问题原因 解决方法 终端解决 Print: Entry, ":CFBundleIdentifier", Does Not Exist 第一步: 去官网GitHub下载对应包就 ...

  10. 数据库Oracle数字函数

    数字函数不多: ROUND(arg1):四舍五入保留整数. arg1:数字类型.原数字. arg2:整数类型.小数点保留的位数. SQL> select round(1256.564,2) fr ...