首页 > 编程知识 正文

url解析过程,域名解析url

时间:2023-05-04 03:24:03 阅读:154296 作者:2133

一. URL格式

HTP :\ host [ : port ] [ ABS _ path ] [ : parameters ]? query]#fragment

示例: http://www.imail tone.com :80/web application1/web form1. aspx? name=汤姆; age=20#resume

http表示使用HTTP协议标识网络资源。

host表示合法的互联网主机域名或IP地址。

port用于表示在传输层交换信息的进程端口号,http协议的缺省端口号为80。 当然,默认端口号因协议而异。

abs_path指定请求资源的统一资源定位符(uri )。

参数用于指定特殊参数的选项。

? query是可选的,用于将参数传递到动态网页(使用PHP/JSP等创建的网页)。 可以有多个参数,用“”符号分隔,每个参数的键值之间用“=”分隔。

可以这样分析URL地址(python )

导入urlparse

lis=urlparse.urlparse(url )

URL=' http://zh.Wikipedia.org :80/wiki/special 3360 search? search=铁路go=Go '

根据上述格式完全解析了URL地址

http是协议;

zh.wikipedia.org,服务器;

80是HTTP协议的默认端口。

/wiki/Special:Search服务器上包含资源的目录的路径

query=' search=xccxfaxc2xb7go=go '是动态网页的查询

二.服务器通过HTTP与浏览器的交互

(1) http请求

客户端通过发送http请求向服务器请求访问资源

http要求由要求行、信息标题、要求正文3部分构成。

请求行的格式如下:

method request-uri http-version crlf

第一个参数方法符号、详细的方法如下所示

第二个参数是请求统一资源定位符(uri )

第三个参数表示协议的版本

第四个是换行符

这四个部分由空格分隔,除末尾外,其他三个部分不能使用CR或LF字符

例如get/tmp.htmlhttp/1.1(crlf ) )。

)2) http请求方法

举几个例子吧。

GET方法:通过在浏览器地址栏中输入网址访问网页时,浏览器使用GET方法从服务中获取资源。

例如GET Request-URL HTTP/1.1

POST方法:此方法用于向服务器发送请求。 此方法要求服务器接收附加到请求的数据,并且经常用于发送表单数据

例如,如post/login.JSPhttp/1.1(crlf )

HTML 文档中,书写get和post,不区分大小写,但HTTP协议中的GET和POST只能是大写形式。

头方法:头方法与GET方法几乎相同。 不同之处在于,HEAD方法只是请求消息标头,而不是完整的内容。

通过这种方法,可以获得由Request-URI标识的资源的信息,而无需传输整个资源的内容。

(3) HTTP响应

当接收并解释请求消息时,服务器返回HTTP响应消息。

与HTTP请求一样,HTTP响应也是状态行,消息报头,相应正文。

p>

  状态行由协议版本,数字形式的状态代码,相应的状态描述组成,各元素之间以空格分隔,除了结尾的CRLF(回车换行)序列外,不允许出现CR或LF字符。格式如下:

  HTTP-Version Status-Code Reason-Phrase CRLF

  HTTP-Version表示服务器HTTP协议的版本,Status-Code表示服务器发回的响应代码,Reason-Phrase表示状态代码的文本描述,CRLF表示回车换行。

Status-Code(状态代码):由三位数字组成,表示请求是否被理解或者满足;

状态代码的第一个数字代表的响应的类别:

1xx:指示信息——表示请求已接收,继续处理

   2xx:成功——表示请求已经被成功接收,理解,接受

   3xx:重定向——要完成请求必须进行更进一步的操作

   4xx:客户端错误——请求有语法错误或请求无法实现

   5xx:服务器端错误——服务器未能实现合法的请求

Reason-Phrase(状态描述):关于状态代码的简短文本描述;

  例如:

  HTTP/1.1 200 OK (CRLF)




参考资料:

圣骑士Wind的博客



版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。