您的位置:首页 > 理论基础 > 计算机网络

HTTP协议的请求和响应格式

2016-08-25 00:25 204 查看

一、HTTP

HTTP协议通常是承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这就成了HTTPS。默认HTTP的端口号为80,HTTPS的端口号为443。HTTPS是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

二、HTTP的过程

HTTP是web浏览器和web服务器之间通信的标准协议,每个从客户端到服务器的请求都有四个步骤:

1. 建立连接

默认情况下,客户端与服务器的端口80建立一个TCP连接(三次握手),URL还可能指定其他端口

2. 进行请求

(1)请求行

GET /books/java.html HTTP/1.1


1.请求方式

七种请求方式: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
真正使用的时候:POST/GET
GET请求方式和POST请求区别在于请求参数在传递的过程中方式不同
如果是GET提交,请求参数将会附加在请求的URL后面作为请求地址的一部分带到服务器端,可以传输的数据大小有限制一般不允许超过1K.
如果是POST提交,请求参数将会在http请求的实体内容中进行传输,这种方式传输的数据没有大小限制.

利用form表单提交数据时,form表明明确的声明要用POST提交,这是请求参数就是POST提交
除此以外所有方式的请求参数都是GET提交


2.请求的资源部分的名称

3.所遵循的协议版本

(2)若干请求头

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


(3)实体内容

客户端请求可以包括其他信息,这些额外的信息采用keyword:value的形式。如Accept告诉服务器客户端可以处理哪些数据类型。User-Agent让服务器知道使用的是何种浏览器,允许服务器发送为特定浏览器类型而优化的文件。

HEAD只获取文件的首部,而不是实际数据,这通常用于检查文件的修改日期,查看存储于本地缓存中的副本是否仍然有效。POST向服务器发送表单数据,PUT向服务器上传资源,而DELETE删除服务器上的资源。

3. 响应

(1)状态行

HTTP/1.1 200 OK
协议版本
状态码--用来表示本次请求的处理结果的代码


(2)若干响应头

Location: http://www.it315.org/index.jsp Server:apache tomcat
Content-Encoding: gzip
Content-Length: 80
Content-Language: zh-cn
Content-Type: text/html; charset=GB2312
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
Refresh: 1;url=http://www.it315.org
Content-Disposition: attachment;filename=aaa.zip
Transfer-Encoding: chunked
Set-Cookie:SS=Q0=5Lb_nQ; path=/search
ETag: W/"83794-1208174400000"
Expires: -1 ---- 通知浏览器是否缓存当前资源 ,如果这个头的值是一个以毫秒为单位值就是通知浏览器缓存资源到指定的时间点,如果值是0或-1则是通知浏览器禁止缓存
Cache-Control: no-cache  -- 通知浏览器是否缓存资源
Pragma: no-cache    -- 通知浏览器是否缓存资源
之所以三个头是一个功能,是因为历史原因.不同的浏览器对这三个头支持的不同,一般来说这三个头要同时使用确保不同的浏览器都能实现控制缓存的功能

Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT


(3)实体内容

服务端向客户端发送响应。响应以响应码开头,后面是元数据首部、空行和所请求的文档或错误消息。

格式:第一行指明服务器使用的协议,后面是响应码。首部中的其他各行标识在服务器时间范围内进行请求时的相应日期、服务器软件,文档的最后修改日期、在发送结束后服务器关闭连接的约定、MIME内容类型和所分发文档的长度(不包括首部)。

4. 关闭连接

客户端或服务器或两者都可以关闭连接。每个请求都是用一个单独的网络连接。如果客户端重新请求,服务器不会记忆前次的连接或结果,称为是无状态协议。

数据。除了用Form表单明确用method指定用post方式提交数据以外,其他的方式都是GET提交方式。

三、HTTP常见响应码

1xx表示通知信息

2xx表示成功,如200表示ok。

3xx表示重定向301永久移动(页面移动到了新的URL,web浏览器自动加载此URL的页面,更新所有指向旧的URL的书签。302临时移动。304未修改。

4xx表示客户端错误,403 禁止访问,404 文件未找到。

5xx表示服务器错误。500内部服务器错误,503服务器繁忙,服务不可用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  http