http 重定向 302报文

本文详细探讨了HTTP 302重定向的实现过程,包括以太头、IP报文头、TCP头的结构,以及TCP连接的三次握手。重点讲解了在重定向中如何处理MAC、IP、TCP头的各项字段,并强调了HTTP 302响应报文的最小头部结构。通过对各种标志位的解释,展示了如何构建和发送重定向报文。
摘要由CSDN通过智能技术生成

我这里的重定向环境是对客户端的请求直接截断重定向到其他页面。

 

以太头和Ip头想应数据对调。

Tcp头flags标记和序号问题。主要问题

数据内容主要的就两条:

"HTTP/1.1 302 Moved Temporarily"

"Location: 路径"

 

 

一、以太头结构


在帧结构里我用到的有MAC目的地址,以太类型。至于802.1Q标签,如果加了,对以太类型想对地址要向生移4个字节。源来的地址值则为0x8100。

 

用到的以太类型是 0x800 表以后一个负载段的内容是一个IP包。这个宏定义在if_ether.h头文件里。

 

#define ETH_P_PUPAT     0x0201              /*Xerox PUP Addr Trans packet      */

#define ETH_P_IP    0x0800              /*Internet Protocol packet     */

#define ETH_P_X25 0x0805              /* CCITTX.25                     */

#define ETH_P_ARP         0x0806              /*Address Resolution packet */

 

先看是不是IP包

         是:对换MAC地址,复制以太头结构到buffer

         不是:这个就直接转发的转发,丢包的丢包了不管了。

 

unsignedshort *port = NULL;
         unsignedshort h_poto = 0;
        
         if(pkt->eth_hdr_ptr->h_proto== htons(ETH_P_8021Q))
         {
                   h_poto= *((unsigned short *) pkt ->eth_hdr_ptr + 8);
         }
         else
         {
                   h_poto= pkt ->eth_hdr_ptr->h_proto;
         }
        
         if( h_poto != htons(ETH_P_IP) )
         {
                   returnERROR_FAIL;
         }
 
         port= (unsigned short *) pkt->l4_hdr_ptr;
         if(port== NULL)
         {
                   returnERROR_FAIL;
         }


 


二、IP报文头结构的话

 

struct iphdr {
#if defined(__LITTLE_ENDIAN_BITFIELD)
         __u8         ihl:4,
                   version:4;
#elif defined (__BIG_ENDIAN_BITFIELD)
         __u8         version:4,
                ihl:4;
#else
#error       "Pleasefix <asm/byteorder.h>"
#endif
         __u8         tos;
         __be16     tot_len;
         __be16     id;
         __be16     frag_off;
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值