欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python连载58-http协议简介

程序员文章站 2023-03-26 19:50:29
一、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)浏 ......

一、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协议简介