美文网首页更重要tcp进程
计算机网络02-HTTP协议的底层实现

计算机网络02-HTTP协议的底层实现

作者: yulongsun | 来源:发表于2016-09-05 18:43 被阅读315次

    0. HTTP协议的主要特点:

    1. 无连接:限制每次链接之处理一个请求。Server端处理完Client的请求,并受到Client的应带之后,就断开连接。
    2. 无状态:HTTP是无状态协议。无状态的是指协议对于事务处理没有记忆能力。也就是意味着 如果后续处理需要处理前面的信息,则他必须重传。

    1. 请求过程

    • 请求行

      • 请求方法:GET
      • URL字段:/example.html
      • HTTP协议版本: HTTP/1.1
    • 请求头

      • Accept
        用于指定Client接收那些类型的信息。eg: Accept:image/gif 表明客户端希望接收GIF格式资源。
      • Accept-Charset:
        用于表示Client接受的字符集。如果缺省,表示Client是任何字符集都接收。eg:Accept-Charset:gb2312
      • Accept-Encoding:
        可接收的内容编码。如果没有指定,表示Client对各种编码都可以接受。eg:Accept-Encoding:gzip
      • Accept-Language:
        用于指定一种自然语言。如果没有指定,表示Client对各种语言都可以接受。
      • Authorization:
        用于证明Client有权查看某个资源。当Client请求某个资源的时候,如果Server返回401(未授权),那么可以发送一个请求头包含Authorization的请求,要求Server对其验证。
      • Host:(必须)。用于指定请求的主机和端口
      • User-Agent:
        操作系统、浏览器的属性。
    • 请求体
      只有发送POST请求的时候才有请求正文,Get方法没有请求正文。

    GET /hope/ HTTP/1.1 //---请求行
    
    Host: ce.sysu.edu.cn
    
    Accept: */*
    
    Accept-Encoding: gzip, deflate, sdch
    
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.6
    
    Cache-Control: max-age=0
    
    Cookie:.........
    
    Referer: http://ce.sysu.edu.cn/hope/
    
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
    
    ---分割线---
    
    POST /hope/ HTTP/1.1 //---请求行
    
    Host: ce.sysu.edu.cn
    
    Accept: */*
    
    Accept-Encoding: gzip, deflate, sdch
    
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.6
    
    Cache-Control: max-age=0
    
    Cookie:.........
    
    Referer: http://ce.sysu.edu.cn/hope/
    
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
    
    ...body...
    

    2. 响应过程

    • 状态行
      • HTTP协议 : HTTP/1.1
      • 状态码 : 200
      • 对状态码的文本描述 : OK
        eg:
        HTTP/1.1 200 OK (CRLF)
      
      状态码
      1xx: 指示信息。请求已被接受,继续处理。
      2xx:成功。
      3xx:重定向。要完成请求必须进一步操作。
      4xx:客户端错误。请求有语法错误。
      5xx:服务器端错误。
      
      常见状态码
      200 OK //客户端请求成功
      400 Bad Request //客户端请求有语法错误,不能被服务器所理解
      401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报 //头域一起使用
      403 Forbidden //服务器收到请求,但是拒绝提供服务
      404 Not Found //请求资源不存在,eg:输入了错误的URL
      500 Internal Server Error //服务器发生不可预期的错误
      503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后,可能恢复正常
      
    • 消息报头
    • 响应正文

    参考

    1. HTTP协议详解(真的很经典)
    2. 当你输入一个网址的时候,实际会发生什么?
      https://www.zybuluo.com/yangfch3/note/113028

    相关文章

      网友评论

        本文标题:计算机网络02-HTTP协议的底层实现

        本文链接:https://www.haomeiwen.com/subject/gnsrettx.html