HTTP协议

目录

1.首先我们要明确什么是协议

2.什么是HTTP协议

3.HTTP主要特点:

4.HTTP原理

5.什么是URL,什么是URI

6.HTTP请求和响应

7.报头


1.首先我们要明确什么是协议

网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者“规则”,有了这种约定,不同厂商的生产设备,以及不同的操作系统之间就可以进行通信。

2.什么是HTTP协议

HTTP是一个属于应用层的面向对象的协议,从WEB服务器传输超文本语言(HTML)到本地浏览器的传送协议,起初是为了提供一种发布和接受HTML界面的方法。

3.HTTP主要特点:

①支持客户/服务器模式

②简单快速:客户端向服务器端请求服务时,只需要传送请求方法和路径。请求常用的方法主要有POST、GET、HEAD。每种方法则规定了客户与服务器的联系的类型不同,因为HTTP协议简单,使得HTTP服务器的程序规模小,因此提高了通信速度。

③灵活:HTTP协议可以传送任意类型的数据对象,用Content—Type进行标记

④无连接:每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。但是这样却不利于客户端与服务器保持会话,为了弥补这种不足,产生了两种记录http状态的技术,Cookie和Session。

⑤无状态:无状态是指协议对事务处理没有记忆能力,如果后续处理需要前面的信息,则需要进行重传。

4.HTTP原理

HTTP是一个常基于TCP/IP通信协议来传送数据的协议。浏览器作为HTTP客户端通过URL向HTTP服务端发送请求。

查看源图像

5.什么是URL,什么是URI

HTTP统一使用统一资源标识符(URI)来传输数据和建立连接

URI:是用来表示一个具体的资源,我们可以通过URI知道一个资源具体是什么

URL:是用来定位具体的资源位置的,表示了一个资源的具体位置,互联网上的每一个文件都有其唯一的URL。

6.HTTP请求和响应

HTTP请求

HTTP协议报文格式:

请求
1.首行(方法, URL,版本号)
2.header(若干个键值对,每个键值对占一行,键和值之间使用冒号空格分割)
3.空行(header的结束标记)
4. body (GET请求没有body, POST请求有body)

各种请求方法:

①GET 请求获取Request-URL所标识的资源

②POST 在Request—URL 所标识的资源附加新的资源

③HEAD 请求获取Request-URL 所标识的资源的响应报头

④PUT 请求服务器存储一个资源,并用Request—URL作为其标识

⑤DELETE 请求服务器删除Request—URL所标识的资源

⑥TRACE 请求服务器返回收到的请求信息,主要用于测试和诊断

⑦CONNECT 保留将来使用

⑧OPTIONS 请求服务器的性能,或者查询与资源相关的选项和需求

 

 响应
1.首行(版本号状态码状态码的描述)

2.header(和请求类似)
3.空行(header 的结束标记)
4.body具体的数据格式取决于Content-Type字段.具体的长度取决于Content-Length

各种状态码:

1XX:指示信息--标识请求已经接受,继续处理

2XX:成功,表示请求已经被成功接收。

3XX:重定向—要完成请求需要进一步的操作

4XX:客户端错误—请求有语法错误,或者请求无法实现

5XX:服务器错误—服务器无法实现合理的请求

常见的状态码:

200 OK - 客户端请求成功
301 - 资源(网页等)被永久转移到其它URL
302 - 临时跳转
400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
404 - 请求资源不存在,可能是输入了错误的URL
500 - 服务器内部发生了不可预期的错误
503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

7.报头

HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成,请求消息和响应消息都是由开始行(请求消息,状态行)、消息报头、空行、消息正文组成。

HTTP消息报头包括普通报头,请求报头,响应报头,实体报头,都是以键值对的形式组成。

常见的请求报头:

①ACCEPT 用于指定客户端接受哪种类型的信息

②ACCEPT-Charse 用于指定客户端接受的字符集

③Accept- Enconding 用于指定可接受的内容编码

④Accept-Language 用于指定一种自然语言

⑤Authorization 用于证明客户端有权查看某个资源

⑥Host(发送请求时,这个报头是必须的)用于指定被请求资源的Internet 主机和端口号,通常是从HTTP URL中提取出来的

⑦User-Agent 允许客户端告诉服务器自己属性(非必须)

常见的响应报头:

①Location 重定向到一个新的位置

②Server 包含了服务器用来处理请求的软件信息,与User-Agent是对应的

常见的实体报头:

请求和响应都可以传送一个实体,一个实体由实体报头域和实体正文组成。

①Content-Encoding 表示被应用到实体正文的附加内容的编码

②Content-Language 描述了资源所用的自然语言

③Content-Length 指明实体正文的长度

④Content-Type 指明发送给接受者的实体正文的媒体类型

⑤Last-Modifide 用于指示资源的最后修改时间

⑥Expires 实体报头域给出相应过期的日期和时间。


 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值