首页 > temp > python入门教程 >
-
Python连载58-http协议简介
一、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(心悦君兮君不知-睿)
出 处:https://www.cnblogs.com/ruigege0000/p/12075643.html