Http协议简绍

2017-09-30  本文已影响0人  hiandg

简介

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

我们把Http协议中通信的两方称作Client和Server关系如图(1):

1 Client和Server关系图

URL详解

2 URL示例

scheme:指定底层使用的协议(例如:http,https,ftp)

host:HTTP服务器的IP地址或者域名

port#:HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明

path:访问资源的路径

url-params:url参数

query-string:发送给http服务器的数据(?后面)

anchor:锚,用于页面定位

http协议是无状态协议

原理:同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自一个客户端。无状态是指协议对于事务没有记忆能力,服务器不知道客户端是什么状态。从另一个方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。

解决方案:Cookie机制来维护

Http消息结构

Request消息的结构:三部分

请求行:http请求种类,请求资源路径,http协议版本

http header:http头部信息(后面文章后更新这块内容)

body:发送给服务器query-string的信息

当使用的是"GET"方法的时候,body是为空的

3 Request结构

Response消息的结构

请求行:协议版本,状态码,message

request header:request头信息

body:返回的请求资源主体

4 response

get和post的区别

1.GET提交的数据会放在URL之后,以?分割URL和传输数据,参数见以&相连;POST方法是把提交的数据放在HTTP包的Body中

2.GET提交的数据大小有限制;POST方法提交的数据没有限制

3.GET方式需要使用Request.QueryString来获取变量的值;POST通过Request.From来获取变量的值

4.GET方式提交数据,会带来安全问题

响应码

上一篇下一篇

猜你喜欢

热点阅读