HTTP协议介绍

什么是HTTP协议

HTTP(超文本传输协议)协议是建立在TCP协议传输协议之上的应用协议。应用层协议。

HTTP协议的主要特点:

1、支持Client/Server模式

2、简单,请求只需要指定URL、参数和请求体

3、灵活,HTTP允许传输任意类型的数据对象,传输的内容类型由HTTP消息头中的Content-Type指定

4、无状态,无状态是指对事务处理没有记忆功能,如果后续需要处理之前的信息,就必须重传,这个时候可能导致每次连接传输的数据量增大。如果不需要之前的信息,每次传输携带数据越少,传输越快。

HTTP协议的URL

HTTP的URL(URL是一种特殊格式的URI,包含了用于查找某个资源的足够信息)的格式如下:

http://host[":"port][abs_path]

要注意的是:

1、port不指定,默认是80

2、abs_path指定请求资源的URI

3、如果URL中没有给出abs_path,那么把它当做请求的URI时,必须以"/"的形式给出。

HTTP请求消息(HTTPRequest)

请求头包含三部分:

  • HTTP请求行
  • HTTP请求头
  • HTTP请求正文

请求行

请求行以方法符开头,空格分开,后面跟请求的URI和协议的版本,格式为:

Method Request-URI HTTP-Version CRLF。

其中Method表示请求方法,请求方法有很多种:

GET:请求获取Request-URI所标识的资源

POST:在Request-URI所标识的资源后附加新的提交数据

HEAD:请求获取由Request-URI所标识资源的响应消息头

PUT:请求服务器存储一个资源,并用Request-URI作为其标识

DELETE:请求服务器删除Request-URI所标识的资源

TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断

CONNECT:保留将来使用

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

纯手打,累:)

常问的面试问题可能会让你说说HTTP的请求过程,get、post请求的区别

get请求一般用于查询资源,post一般用于更新资源。

1、根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的;POST则表示可能改变服务器上的资源的请求。(本质)

2、GET提交,请求的数据会附在URL之后,就是把数据放置在请求行中,以“?”分隔URL和传输数据,多个参数用“&”连接;POST提交会把提交的数据放置在HTTP消息的包体中,数据不会在地址栏显示出来。(这只是使用工具问题,如果使用其他工具是可以看到请求体的)

3、传输数据的大小不同,GET受限,POST不通过URL传值,理论上不受限

4、安全性。POST安全性相对更高,GET请求可能会造成Cros-site request forgery攻击

请求头

请求头允许客户端向服务器传递请求的附加信息以及客户端自身信息。

Authorization可以使用在授权系统中的验证交互

Content-Type也很重要

HTTP响应消息(HTTPResponse)

HTTP响应也是由三部分组成:状态行、消息报头、响应正文

状态行的格式为:HTTP-Version Status-Code Reason-Phrase CRLF,其中HTTP-Version表示服务器HTTP协议版本,Status-COde表示服务器范湖id响应状态码。

状态码由三位数字组成,第一个数字定义了响应的类别。有5中可能:

响应头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Reuqest-URI所标识的资源进行下一步访问的信息。常用响应头:

总结:

 

延伸阅读:

深度解密HTTP通信细节

基于 Netty 如何实现高性能的 HTTP Client 的连接池

滴滴工程师带你深入理解 TCP 握手分手全过程

TCP长连接和心跳那些事

当我们在读写 Socket 时,我们究竟在读写什么?

一文掌控面试必备的TCP知识

分分钟就能理解TCP backlog

TCP之三次握手四次挥手

完整的一次 HTTP 请求响应过程(二)

图解HTTP(二)

聊聊 TCP 中的 KeepAlive 机制

如何学习 TCP 协议

Wireshark 基本介绍和学习 TCP 三次握手

HTTPS工作原理和TCP握手机制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值