• 111.网络编程-http


    网络编程-http

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

    http内容

    • 超文本
      • 包含有超链接和各种多媒体元素标记的文本。这些超文本文件彼此链接,形成网状(web),能此被称为网页。
      • 最常见的超文本格式是超文本标记语言HTML
    • URL
    • 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为数字,指明特定的请求是否被满足,如果没有满足,原因时思慕

    • 参考资料

    • 状态码五类

      状态码 含义 例子
      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
  • 相关阅读:
    jmeter循环发送http请求
    判断字符串是否为日期格式
    正则表达式的部分替换 $1~$99
    js验证上传文件大小
    mongodb主从备份 和 手动主从切换
    openproject安装与使用
    软件项目开发常见错误
    使用selenium的WebDriver和ChromeDriver实现UI自动化
    shell ssh远程执行命令
    Flask入门
  • 原文地址:https://www.cnblogs.com/TK-tank/p/12333535.html
Copyright © 2020-2023  润新知