http协议

来源:互联网 发布:centos开启snmp 编辑:程序博客网 时间:2024/05/21 10:19

1、定义

HTTP(Hypertext Transfer Protocol)超文件传输协议,从1990年开始就在www上广泛应用,是现今WWW上应用最多的协议,目前的版本为1.1

HTTP是应用层协议,当上网浏览网页时,浏览器和服务器之间就通过HTTP在Internet上进行数据的发送和接收。

HTTP是一个基于请求/响应模式的,无状态的协议(request/response based, stateless protocol)

TCP是一个基于连接的协议,它能够提供两台计算机之间的可靠的数据流,HTTP,FTP,Telnet等应用都需要这种可靠的通信通道。

2、HTTP1.0

(1)客户发起连接

(2)客户发送请求

(3)服务器响应请求

(4)服务器关闭连接

3、HTTP1.1是持续连接(Persistent Connections)

4、URI Uniform Resource Identifier统一资源标识符

5、浏览器与服务器连接的一般过程

ServerSocket serverSocket = new ServerSocket(80);

serverSocket.accept();

www.baiud.com + 80(浏览器自动加的)-->DNS(Domain Name Service)-->115.239.210.26:80

Socket socket = new Socket("115.239.210.26", 80)

6、HTTP请求

客户端通过发送HTTP请求向服务器请求对资源的访问,HTTP请求由三部分组成,分别是:请求行,消息报头,请求正文

请求行以一个方法符号开头,后面跟着请求URI和协议的版本,以CRLF作为结尾。请求行以空格分隔。除了作为结尾的CRLF外,不允许出现单独的CR和LF字符,格式如下: - Method Request-URI HTTP-Version CRLF

Method表示请求的方未能,Request-URI是一个统一资源标识符,标识了要请求的资源,HTTP-Version表求请求的HTTP协议版本,CRLF表示回车换行。例如:

- GET /test.html HTTP/1.1(CRLF)

(1)GET方法用于获取由Request-URI所标识的资源的信息,常见形式是:- GET Request-URI HTTP/1.1

当我们通过在浏览器的地址栏中直接输入网址的方式去访问网页时,浏览器采用的就是GET方法向服务器获取资源。

(2)POST方法用于向服务器发送请求,要求服务器接受附在请求后面的数据。POST方法在表单提交的时候用得最多。

(3)HEAD方法与GET方法几乎是一样的,他们的区别在于HEAD方法只是请求消息报头,而不是完整的内容。对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源的内容,就可以得到Request-URI所标识的资源的信息,这个方法通常用于测试超链接的有效性,是否可以访问,以及最近是否有更新等。

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

7、HTTP响应

在接收和解释请求消息后,服务器会返回一个HTTP响应信息,与HTTP请求类似,HTTP响应也是由三个部分组成:状态行,消息报头,响应正文

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

- HTTP -Version Status-Code Reason-Phrase CRLF

HTTP-Version表示服务器HTTP协议的版本,Status_code表示服务器发回的响应代码,Reason-Phrase表示状态代码的文件描述,例如:

- HTTP/1.1 200 OK(CRLF)

8、HTTP消息

HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行,消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行。



原创粉丝点击