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协议请求与响应格式内容详解
- http协议,请求报文,响应报文格式思维导图
- HTTP协议请求信息和响应信息的格式(一)
- HTTP协议请求和响应格式——基于文本行的协议
- HTTP协议请求信息和响应信息的格式(二)
- HTTP请求格式和HTTP响应格式
- httpclient的post请求并处理json格式响应数据
- javaweb开发篇——HTTP协议请求和响应详解(上)
- HTTP协议-HTTP特点、请求和响应
- Unity3D 网络通信_HTTP协议、处理Json格式返回值、请求加Oauth
- http协议请求响应详解
- 修改httpcore.jar的源码,查看Httpclient的http协议请求头部和响应头部
- HTTP请求响应格式
- Http协议请求和响应字段
- HTTP协议请求头信息和响应头信息
- http协议(二)请求和响应报文的构成
- javaweb开发篇——HTTP协议请求和响应详解(下)
- 唯快不破:HTTP请求格式和响应格式
- HTTP请求、响应报文格式
- web 学习笔记8-HTTP协议,请求头,响应头