NO.38 WebServer思路

我们需要开发一个可供浏览器访问的网页服务端。

客户端HTTP协议中的请求信息格式:

请求行

GET /index.html HTTP/1.1CRLF

消息报头

消息正文

以行为单位发送至服务端 每行结尾以(CR LF)

CR:回车  LF:换行


服务端需要响应客户端对应的资源----HTTP协议要求实际响应客户端时的数据格式:

HTTP/1.1 200 OK CRLF        状态行

Content-Type:text/html CRLF  响应头信息

Content-Length:100CRLF      响应头信息

CRLF        单独发送CRLF指明响应头全部发送完毕

DATA        实际数据

1)状态行

状态行格式:

HTTP-Version Status_code Reason_Phrase CRLF

HTTP协议版本      状态代码      状态描述CRLF

例如:HTTP/1.1 200 OK CRLF

状态代码第一个数字有5种:

1xx:指示信息,表示请求已接收,继续处理。

2xx:成功,表示请求已接收,理解,接受

3xx:重定向,要完成请求需要更进一步的操作

4xx:客户端错误,请求语法错误或请求无法实现

5xx:服务端错误,服务器未能实现该请求

常见的状态码及描述:

200 OK                    客户端请求成功

400 Bad Request     客户端请求有语法错误,服务端不能理解

401 Unauthonzed    请求未授权

403 Forbidden          服务端接收到请求,但是拒绝提供服务

404 Not Found          请求的资源不存在

500 Internal Server Error 服务器发生了不可预期的错误

503 Service Unavailable  服务器当前不能够处理客户端请求

2)响应头

响应头注明很多返回的信息,按行输出

常见----Content-Type:用来指明发送给接收者的媒体类型

常见的Content-Type:

text/html:    HTML格式文件(网页)

text/xml:      XML格式文件

image/gif:    gif格式图片

image/jpeg:  jpeg格式图片

image/png:   png格式图片

Content-Length:用来指明发送给接收者实体正文的长度,简单说就是发送过去的数据的字节量

CRLF        单独发送CRLF指明响应头全部发送完毕

3)响应正文

DATA        实际数据

我们获取输入流,读取客户端发送过来的数据,然后给于客户端反馈,输出流使客户端得到请求的信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,488评论 19 139
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 2,916评论 0 6
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,724评论 6 152
  • 为什么有很多人总是这样地仇恨新奇,仇恨有趣。古人曾说:天不生仲尼,万古长如夜。但我有相反的想法。假设历史上曾有一位...
    Molly_zhang阅读 211评论 0 0
  • 有句话说的好,脸上的泥土不能阻止眼中的光芒,生活的艰辛不能阻止内心的渴望。
    A分享阅读 516评论 0 1

友情链接更多精彩内容