zoukankan      html  css  js  c++  java
  • http协议组成

    摘要

    本文主要内容介绍什么是http协议

    了解http协议之前我们先了解一下当我们输入一个url到页面渲染出来,这个过程发什么了什么呢~

    网络开启线程开始解析url

    DNS解析域名,查询IP

    建立TCP/IP链接

    然后发送请求

    什么是HTTP协议:

    HTTP即超文本传输协议,作为网络协议中的应用层的协议,它是一种文明的协议,传输过程中传输内容对外是可见的。

    HTTP的特点:

    HTTP协议是基于TCP/IP通信以协议来传递数据的,数据类型可以是JSON、表单、HTML、图片等等

    HTTP默认端口号为80

    HTTP是协议是无状态的,每一次的请求与响应彼此没有任何关系(这也是为什么产生Session、Cookie、Token的原因)

    HTTP请求组成部分

    请求行

    请求行有请求方法、URL字段、HTTP协议版本号三部分组成

    HTTP请求方式:POST GET PUT DELETE OPTIONS等等

    在这里需要了解到,HTTP请求也分为简单请求跟复杂请求

    那么一个HTTP请求如何满足是简单请求:

    1HTTP请求类型为:HEAD、GET、POST

    2HTTP头包含:Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type

           Content-Type仅能是application/x-www-form-urlencoded、multipart/form-data、text/plain之一

    复杂请求:

    如果不满足简单请求的条件便是复杂请求,一个复杂请求的通信,不仅包含通信内容的请求,而且还包含一个预请求。

    简单请求与复杂请求对比:

    简单请求

     复杂请求

     其中预请求的请求类型为OPTIONS

     请求头

    用来向客户端解释请求信息

    请求报头常见属性(这里重点解释常用的):

    Accept:可接受响应类型(application/json、text/plain等)

    Accept-Charest:可接收的字符集(utf-8等)

    Accept-Encoding:可接受的相应内容的编码方式(gzip、deflate等)

    Accept-Language:可接受的响应内容语言列表(en-US、zh-CN等)

    Authorization:http认证信息(oauth认证)

    Cache-Control:缓存机制控制(on-cache、on-store、max-age、public、private)

    Connection:客户端优先使用的链接类型(keep-alive、upgrade)

    User-Agent:浏览器的身份标识字符串

    Origin:发起一个针对跨域资源共享的请求

    If-Modified-Since:上一次响应的Last-Modified的值回当做If-Modified-Since的值发送给服务器

    If-None-Match:上一次响应的ETag的值会当做If-None-Match的值发送给服务器

    Referer:表示跳转到当期那页面的之前页面

    消息主题:前台向后台发送的数据

    HTTP响应

    我们用抓包工具抓取一个响应如图

    响应行

    响应行由HTTP协议版本号、状态码,以及状态描述三部分组成(例如途中:HTTP/1.1 200 OK)

    响应头组成部分

    Cache-Control:no-store no-cache max-age等等

    Date:响应时间

    Expires:新鲜度,通知浏览器过期前可以使用副本

    Content-Length:响应内容大小

    Content-Type:响应类型

    ETag:校验值,校验从服务器端获取内容是否发生改变

    响应正文:服务器发送给客户端的内容

  • 相关阅读:
    Business English E-mail
    向数据库更新数据
    遍历DataTable
    Convert SqlDataReader to DataTable
    (十七)map、flatMap和reduce方法的补充
    (4)六顶思考帽
    (3)学习方法思维导图
    (十六)call、apply、bind的实现以及区别
    (十五)关于继承
    (十四)防抖和节流
  • 原文地址:https://www.cnblogs.com/moran1992/p/12026568.html
Copyright © 2011-2022 走看看