zoukankan      html  css  js  c++  java
  • HTTP协议

      1     * 概念:Hyper Text Transfer Protocol 超文本传输协议
      2         * 传输协议:定义了,客户端和服务器端通信时,发送数据的格式
      3         * 特点:
      4             1. 基于TCP/IP的高级协议
      5             2. 默认端口号:80
      6             3. 基于请求/响应模型的:一次请求对应一次响应
      7             4. 无状态的:每次请求之间相互独立,不能交互数据
      8 
      9         * 历史版本:
     10             * 1.0:每一次请求响应都会建立新的连接
     11             * 1.1:复用连接
     12 
     13     * 请求消息数据格式
     14         1. 请求行
     15             请求方式 请求url 请求协议/版本
     16             GET /login.html    HTTP/1.1
     17 
     18             * 请求方式:
     19                 * HTTP协议有7中请求方式,常用的有2种
     20                     * GET:
     21                         1. 请求参数在请求行中,在url后。
     22                         2. 请求的url长度有限制的
     23                         3. 不太安全
     24                     * POST:
     25                         1. 请求参数在请求体中
     26                         2. 请求的url长度没有限制的
     27                         3. 相对安全
     28         2. 请求头:客户端浏览器告诉服务器一些信息
     29             请求头名称: 请求头值
     30             * 常见的请求头:
     31                 1. User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息
     32                     * 可以在服务器端获取该头的信息,解决浏览器的兼容性问题
     33 
     34                 2. Referer:http://localhost/login.html
     35                     * 告诉服务器,我(当前请求)从哪里来?
     36                         * 作用:
     37                             1. 防盗链:
     38                             2. 统计工作:
     39         3. 请求空行
     40             空行,就是用于分割POST请求的请求头,和请求体的。
     41         4. 请求体(正文):
     42             * 封装POST请求消息的请求参数的
     43 
     44         * 字符串格式:
     45             POST /login.html    HTTP/1.1
     46             Host: localhost
     47             User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
     48             Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
     49             Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
     50             Accept-Encoding: gzip, deflate
     51             Referer: http://localhost/login.html
     52             Connection: keep-alive
     53             Upgrade-Insecure-Requests: 1
     54             
     55             username=zhangsan    
     56 
     57 
     58     *. 响应消息:服务器端发送给客户端的数据
     59         * 数据格式:
     60             1. 响应行
     61                 1. 组成:协议/版本 响应状态码 状态码描述
     62                 2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。
     63                     1. 状态码都是3位数字 
     64                     2. 分类:
     65                         1. 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
     66                         2. 2xx:成功。代表:200
     67                         3. 3xx:重定向。代表:302(重定向),304(访问缓存)
     68                         4. 4xx:客户端错误。
     69                             * 代表:
     70                                 * 404(请求路径没有对应的资源) 
     71                                 * 405:请求方式没有对应的doXxx方法
     72                         5. 5xx:服务器端错误。代表:500(服务器内部出现异常)
     73                             
     74                     
     75             2. 响应头:
     76                 1. 格式:头名称: 值
     77                 2. 常见的响应头:
     78                     1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
     79                     2. Content-disposition:服务器告诉客户端以什么格式打开响应体数据
     80                         * 值:
     81                             * in-line:默认值,在当前页面内打开
     82                             * attachment;filename=xxx:以附件形式打开响应体。文件下载
     83             3. 响应空行
     84             4. 响应体:传输的数据
     85 
     86 
     87         * 响应字符串格式
     88             HTTP/1.1 200 OK
     89             Content-Type: text/html;charset=UTF-8
     90             Content-Length: 101
     91             Date: Wed, 06 Jun 2018 07:08:42 GMT
     92     
     93             <html>
     94               <head>
     95                 <title>$Title$</title>
     96               </head>
     97               <body>
     98               hello , response
     99               </body>
    100             </html>
  • 相关阅读:
    django项目中使用手机号登录
    django项目登录中使用图片验证码
    django项目中使用bootstrap插件的分页功能。
    scrapy框架用CrawlSpider类爬取电影天堂.
    scrapy框架爬取开源中国项目大厅所有的发布项目。
    scrapy框架爬取智联招聘网站上深圳地区python岗位信息。
    Django项目中使用qq第三方登录。
    使用scrapy框架爬取全书网书籍信息。
    【教程】如果公司的网络屏蔽了游戏【英雄联盟】的链接请求,使用这种方法玩游戏。
    尝试.Net Core—使用.Net Core + Entity FrameWork Core构建WebAPI(一)
  • 原文地址:https://www.cnblogs.com/yscec/p/12814090.html
Copyright © 2011-2022 走看看