美文网首页更重要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协议的底层实现

    0. HTTP协议的主要特点: 无连接:限制每次链接之处理一个请求。Server端处理完Client的请求,并受到...

  • Http协议原理详解

    01-http协议概念及工作流 02-http协议之方法与状态码 03-socket编程发送Get请求 04-so...

  • TCP是如何实现可靠传输的?

    在计算机网络的经典五层协议中,TCP属于运输层,实现了进程间的通信,保证了数据的可靠传输,属于计算机网络协议族中最...

  • Golang面试之TCP/IP协议

    引用 关于TCP/IP的面试题 计算机网络——OSI、TCP/IP协议族详解 计算机网络【七】:可靠传输的实现 T...

  • 《趣谈网络协议》学习笔记 day03

    socket就是对底层网络函数的封装,底层实现了tcp/dup协议。 socket(),bind(), 创建soc...

  • 初识TCP/UDP

    计算机网络七层协议结构(OSI),由底层向上: 物理层->数据链路层->传输层->网络层->会话层->表示层->应...

  • Android进阶之网络篇—TCP/IP,HTTP,HTTPS

    计算机网络基础知识讲解 TCP/IP TCP/IP是指能够在多个不同网络间实现信息传输的协议簇 TCP/IP协议不...

  • 用go语言实现聊天室 (WebSocket协议)

    一、WebSocket协议 在实现之前,我们需要解决一个底层问题。 总所周知,HTTP协议是单向传输协议,只能由客...

  • 互联网术语

    行业术语 IP:Internet Protocol 网络之间互连的协议,它是能使连接到网上的所有计算机网络实现相互...

  • 【产品经理】扫盲区

    行业术语 IP:Internet Protocol 网络之间互连的协议,它是能使连接到网上的所有计算机网络实现相互...

网友评论

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

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