一、什么是Http协议?
客户端连接服务器端之后,若想获得web服务器中某个web资源,需遵循一定的通讯格式,HTTP协议就是定义客户端于服务器端进行通讯的格式。
HTTP(hypertext transfer protocol)(超文本传输协议)的简写,它是TCP/IP协议的应用层协议(OSI网络七层协议:应用层(HTTP、FTP、SMTP、POP3、TELNET)-》表示层 -》会话层 -》传输层(TCP/UDP) -》网络层(IP) -》数据链路层 -》物理层),用于定于客户端于服务器之间交换数据的过程。HTTP是JavaWeb的基石,不深入了解HTTP协议就不能说掌握了WEB开发,更无法管理和维护一些复杂的站点。HTTP使用请求-响应的方式进行传输,一个请求只能对应一个响应,并且请求只能由客户端发起的。
HTTP协议的版本:HTTP1.0:客户端与服务器建立连接后只能获得一个web资源,并且过后立马断开连接;HTTP1.1:允许客户端与服务器建立连接后获得多个web资源,等待一段时间断开连接。
二、HTTP请求
客户端连接服务器之后,想服务器请求某个web资源,称之为客户端向服务器发送一个http请求,一个完整的http请求内容包括:一个请求行、若干请求头、实体内容
请求行
GET /example/java.html HTTP/1.1
GET:请求方式
七种请求方式: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT,但是常用的一般只有:POST/GET。GET请求方式和POST请求区别在于请求参数在传递的过程中方式不同。 如果是GET提交,请求参数将会附加在请求的URL后面作为请求地址的一部分带到服务器端,可以传输的数据大小有限制一般不允许超过1K。如果是POST提交,请求参数将会在http请求的实体内容中进行传输,这种方式传输的数据没有大小限制。利用form表单提交数据时,form表明明确的声明要用POST提交,这是请求参数就是POST提交,除此以外所有方式的请求参数都是GET提交。
example/java.html: 请求的资源部分的名称
HTTP/1.1:所遵循的协议版本
若干请求头
Accept: */*
Accept-Charset: ISO-8859-1
Accept-Encoding: gzip,compress
Accept-Language: en-us,zh-cn
Host: www.it315.org:80
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
Referer: http://www.it315.org/index.jsp
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Cookie
Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT
实体内容
三、HTTP响应
一个HTTP响应代表服务器向客户端回送的数据:一个状态行、若干响应头(消息头)、实体内容
状态行
格式:HTTP版本号 状态码 原因叙述(不常用)
举例:HTTP/1.1 200 OK
状态码 | 含义 |
100~199 | 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程 |
200~299 | 表示成功接收请求并已完成整个处理过程,常用200 |
300~399 | 为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302、307和304 |
400~499 | 客户端的请求有错误,常用404 |
500~599 | 服务器端出现错误,常用 500 |