理解Http协议

本文深入解析了HTTP协议的工作原理,涵盖请求与响应流程、状态码、首部字段等关键概念,帮助读者全面理解HTTP如何实现互联网通信。

1、理解Http协议的工作过程

(借用一下别人的图不过分吧QAQ)

     http链接步骤

TCP/IP的三次握手跟四次挥手

2、Http请求报文格式

客户端发送一个Http请求到服务器的请求消息包括一下格式:

  • 请求行(request line)
  • 请求头(header)
  • 请求体

     

理解:

请求行:
         请求方法:
                  GET    获取资源
                  POST   向服务器端发送数据,传输实体主体
                  PUT    传输文件
                  HEAD   获取报文首部
                  DELETE 删除文件
                  OPTIONS 询问支持的方法
                  TRACE   追踪路径
          URL
          协议/版本号
请求头:
        通用首部(General Header)
        请求首部(Reqest Header)
        响应首部(Response Header)
        实体首部(Entity Header Fields)
请求体:       

 下面将请求报文拆解一下:

      

2.1 GET请求

      

 

2.2 POST请求

      

3、Http响应报文

注:Http响应组成:响应行响应头响应体(与请求格式相对应)。

      

响应行:
    (HTTP1.1)表示HTTP为1.1版本,状态码为200,状态消息为(OK)
响应头:
    Date:生成响应的日期和时间
    Content-Type:指定了MIME类型的HTML(text/html),编码类型为ISO-8859-1
响应体:
    服务返回的内容....

4、Http状态码

总述:

类别      原因

1XX      Informational (信息性状态码)

2XX      Success (成功状态码)

3XX       Redirection (重定向)

4XX       Client Error (客户端错误状态码)

5XX       Server Error(服务器错误状态码)

4.1  2XX 成功

200  OK 客户端发过来的数据被正常处理
204  No Content 正常响应,没有实体
206  Partial Content 范围请求,返回部分数据,响应报文中由Content-Range指定实体内容

4.2  3XX 重定向

301  Moved Permanently:永久重定向
302  Found:临时性重定向
303  See Other :和302类似,但必须用GET方法
304  Not Modified:状态未改变,配合(If-Match、If-Modified-Since、If-None-Match,
        If-Range,If-Unmodified-Since),但是不满足条件,则服务器会返回304状态码
307  Temporary Redirect:临时重定向,与302的含义类似,但是307要求浏览器不会把重定向请求的POST方法改成GET方法

4.3 4XX 客户端错误

400  Bad Request:请求报文语法错误
401  unauthorized: 需要认证
403  Forbidden :服务器拒绝访问对应的资源
404  Not Found :服务器上无法找到资源

4.4 5XX 服务器错误

500  Internal Server Error:服务器故障
503  Service Unavailable: 服务器处于超负荷或正在停机维护

5 首部(这部分内容参考自别处)

5.1 通用首部字段

首部字段名说明
Cache-Control控制缓存行为
Connection链接的管理
Date报文日期
Pragma报文指令
Trailer报文尾部的首部
Trasfer-Encoding指定报文主体的传输编码方式
Upgrade升级为其他协议
Via代理服务器信息
Warning错误通知

5.2 请求首部字段

首部字段名说明
Accept用户代理可处理的媒体类型
Accept-Charset优先的字符集
Accept-Encoding优先的编码
Accept-Langulage优先的语言
AuthorizationWeb认证信息
Expect期待服务器的特定行为
From用户的电子邮箱地址
Host请求资源所在的服务器
If-Match比较实体标记
If-Modified-Since比较资源的更新时间
If-None-Match比较实体标记
If-Range资源未更新时发送实体Byte的范围请求
If-Unmodified-Since比较资源的更新时间(和If-Modified-Since相反)
Max-Forwards最大传输跳数
Proxy-Authorization代理服务器需要客户端认证
Range实体字节范围请求
Referer请求中的URI的原始获取方
TE传输编码的优先级
User-AgentHTTP客户端程序的信息

5.3 响应首部字段

首部字段名说明
Accept-Ranges是否接受字节范围
Age资源的创建时间
ETag资源的匹配信息
Location客户端重定向至指定的URI
Proxy-Authenticate代理服务器对客户端的认证信息
Retry-After再次发送请求的时机
Server服务器的信息
Vary代理服务器缓存的管理信息
www-Authenticate服务器对客户端的认证

5.4 实体首部字段

首部字段名说明
Allow资源可支持的HTTP方法
Content-Encoding实体的编码方式
Content-Language实体的自然语言
Content-Length实体的内容大小(字节为单位)
Content-Location替代对应资源的URI
Content-MD5实体的报文摘要
Content-Range实体的位置范围
Content-Type实体主体的媒体类型
Expires实体过期时间
Last-Modified资源的最后修改时间

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值