111.网络编程-http

2021-06-05 13:04

阅读:573

标签:content   accept   unicode   存在   uri   部分   应用   指示   错误   

网络编程-http

  • 简介
    • 一个简单的请求-响应协议,它通常运行在TCP之上。

http内容

  • 超文本
    • 包含有超链接和各种多媒体元素标记的文本。这些超文本文件彼此链接,形成网状(web),能此被称为网页。
    • 最常见的超文本格式是超文本标记语言HTML
  • URL
    • 统一资源定位符,用来唯一的标识万维网中的某一个文档
    • 由协议,主机和端口(默认80),路径及文件名三部分构成
    • http://www.sxtyu.com:80/news/indes.html
  • HTTP
    • 超文本传输协议
    • 一种按照URL指示,将超文本文档从一台主机(服务器)传输到另一台主机(浏览器)的应用层协议

http工作原理

  • 请求/响应模型
    1. 本地浏览器分析超链接中的url
    2. 本地浏览器向DSN请求分析www.sxtyu.com的ip地址
    3. DNS将解析出的ip地址202.2.16.21返回浏览器
    4. 浏览器与服务器建立TCP链接,端口80
    5. 浏览器请求文档:get/index.html
    6. 服务器给出响应,将文档index.html发送给浏览器
    7. 释放TCP链接
    8. 浏览器显示index.html中的内容
  • 链接方式
    • 持久连接
    • 非持久连接
  • 无状态性
    • 同一个客户端,第二次访问同一WEB服务器上的页面时,服务器无法知道这个客户曾经访问过。
    • HTTP的无状态性简化了服务器的设计,使其更容易支持大量并发的HTTP请求

http报文结构

请求报文

  • 从客户端(浏览器)向web服务器发送的请求
  • 报文的所有字段都时ASCII码
  • 组成
    1. 请求行
      • 方法 空格 url 空格 版本 CRLF(回车换行)
      • 例: GET index.html HTTP/1.1
    2. 首部行
      • 多行
      • 首部字段名:空格 值 CRLF
      • 例:Host: www.sxtyu.com
    3. CRLF
    4. 实体
      • 完全自定义

返回报文

  • 从web服务器到客户端的应答
  • 报文的所有字段都时ASCII码
    -组成
    1. 状态行
      • 版本 空格 状态码 空格 短语 CRLF
      • 例:HTTP/1.1 200 OK
    2. 首部行
      • 多行
      • 首部字段名: 空格 值 CRLF
      • 例:Date: Web,08 May 2008 22
    3. CRLF
    4. 实体
      • 完全自定义

请求报文中的方法

  • 对所请求对象进行的操作,也就时命令
    • GET 请求读取一个web页面
    • HEAD 请求读取一个web页面的首部
    • POST 附加一个命名资源
    • PUT 请求存储一个web页面
    • DELETE 删除一个web页面
    • TRACE 用于测试,要求服务器送回收到的请求
    • CONNECT 用于代理服务器
    • OPTION 查询特定选项

响应报文中的状态码

  • 响应报文状态行中包含的一个3为数字,指明特定的请求是否被满足,如果没有满足,原因时思慕
  • 参考资料
    • http://www.w3.org/Protocots/rfc2616/rfc2616.html
  • 状态码五类

    状态码 含义 例子
    1xx 通知信息 100=服务器正在处理客户请求
    2xx 成功 200=请求成功(OK)
    3xx 重定向 301=页面改变了位置
    4xx 客户错误 403=禁止的页面;404=页面未找到
    5xx 服务器错误 500=服务器内部错误;503=以后在试

首部字段或消息头

类型 说明
User-Agent 请求 关于浏览器和它平台的消息,如Mozilla5.0
Accept 请求 客户端能处理的页面的类型,如text/html
Accept-Charset 请求 客户端可以接受的字符集,如unicode-1-1
Accept-Encoding 请求 客户端能处理的页面编码方式,如gzip
Accept-Language 请求 客户端能处理的自然语言,如en(英语)、zh-en(简体中文)
Host 请求 服务器的DNS名称,从URL中提取出来,必需
Authorization 请求 客户端的消息凭据列表
Cookie 请求 将以前设置的Cookie送回到服务器,可用来作为会话内容
Date 双向 消息发送时的日期和时间。
Server 响应 关于服务器的信息,如Microsoft-lls/6.0
Content-Encoding 响应 内容是如何编码的,如gzip
Content-Language 响应 页面所使用的自然语言
Content-length 响应 以字节计算的页面长度
Conten-Type 响应 页面的MIME类型
Last-Modified 响应 页面最后被修改的时间和日期,在页面缓存机制中意义重大
Location 响应 指示客户端将请求发送给别处,即重新定向到另一个URL
Set-Cookie 响应 服务器希望客户保存一个cookie

http代理

  • http代理又称web缓存或代理服务区,是一种网络实体,能代表浏览器发出http请求,并将最近的一些请求和响应暂存在本地磁盘中,当请求的web页面先前暂存过,则直接将暂存的页面发给客户端,无锡再次访问internet

111.网络编程-http

标签:content   accept   unicode   存在   uri   部分   应用   指示   错误   

原文地址:https://www.cnblogs.com/TK-tank/p/12333535.html


评论


亲,登录后才可以留言!