HTTP协议

什么是HTTP协议

HTTP协议,中文名超文本传输协议,HTML,超文本标记语言。由命名可知两者可能存在着某种关联,而实际上设计HTTP最初的目的就是为了提供一种发布和接收HTML页面的方法。
HTTP是一个基于请求与响应模式的、无状态的、应用层的协议,使用TCP作为底层的传输协议,默认端口号为80,使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

HTTP协议在java web中的作用

客户端连上WEB服务器后,若想获取应用服务器上的某个WEB资源,需要遵循一定的通讯格式,HTTP协议用于定义客户端与WEB服务器通讯的格式。

HTTP协议的版本

HTTP/1.0 客户端与WEB服务器建立连接后只能获取一个WEB资源
HTTP/1.1 允许客户端与WEB服务器建立连接后,在一个连接上获取多个WEB资源

HTTP协议的特点

1:媒体独立:允许传输任意类型的数据对象,使用Content-Type头标识数据类型。
2:短连接:每次请求完成后就把TCP连接关了,即断开连接。采用这种方 式可以节省传输时间。
3:无状态:协议对于事务处理没有记忆能力,每次发起的http请求都是独立的,它的请求情况和执行结果与之前和之后的请求均没有关联。因为http是无状态的,服务器为了辨别客户端的身份,加入了会话技术–session,cookie

TCP/IP协议与Http协议的区别和联系

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。我们在传输数据时,可以只使用TCP/IP协议,但如果没有应用层,就无法识别数据的意义,如果想要使传输的数据有意义,则必须用到应用层协议。应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自定义应用层协议。JAVA WEB中使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。

HTTP请求:

http请求由四部分组成:依次为请求行、消息报头、一个空格、请求正文。
请求行用于描述客户端的请求方式,请求的资源名称。以及使用的http协议的版本号
消息头用于描述客户端请求哪台主机,以及客户端的一些环境信息等

常用请求方法:
Rest ful风格的API中同一资源通过不同请求方法执行不同的操作,普通的API一般只使用get 和post两种请求方式。除了表单提交以外,大部分请求都是GET方式,用GET方式提交的参数需要以?&方式连接且不能超过1k。post方式提交的数据无限制。
GET:请求获取Request-URI所标识的资源
POST:在Request-URI所标识的资源后附加新的数据
PUT:请求服务器存储一个资源,并用Request-URI作为其标识
DELETE :请求服务器删除Request-URI所标识的资源

常用请求头:
Accept:客户端支持的数据类型。
Accept-Charset:客户端采用的编码。
Accept-Encoding:客户端支持的数据压缩格式。
Accept-Language:客户端的语言环境。
Host:想访问的主机名。
If-Modified-Since:资源的缓存时间。
Referer:从哪个资源来访问服务器。(一般用于防盗链)
User-Agent:客户端的软件环境。
Cookie:小段文本,用于服务器标识客户端身份。
Connection:请求完后是关闭还是保持链接(close/keep alive)。
Date:客户端当前请求时间。

HTTP常用的响应头的含义:

HTTP响应也由四个部分组成,依次为状态行、消息报头、空行和响应正文。
http状态行:用于描述对请求的处理结果
格式: http版本号 状态码 原因叙述
举例: HTTP/1.1 200 OK

常用响应头:
Location:这个头配合302状态码使用,告诉客户端访问资源的实际地址,实现请求重定向。
Server:服务器的类型
Content-Encoding:数据采用的压缩格式。
Content-Length:回送数据的长度。
Content-Language:服务器的语言环境。
Content-Type:回送数据的类型
Last-Modified:当前资源的缓存时间。
Refresh:多长时间刷新一次。
Content-Disposition:控制浏览器以下载的方式打开数据。
Transfer-Encoding:数据的传送格式。
ETag:与缓存相关的头。
expries:控制回送的数据在浏览器的缓存时间。-1或0不缓存。
Connection:响应完是保持链接还是关闭链接。
Date:返回响应的时间。

HTTP状态码
状态代码有三位数字组成,第一个数字定义了响应的类别,HTTP状态码共分为5种类型:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值